HEAT MAP Notation Stochastic

Viewing 14 posts - 1 through 14 (of 14 total)
  • Author
    Posts
  • #177026 quote
    Antoine
    Participant
    Average

    Bonjour à tous
    Je souhaiterai réaliser une heat map de notation stochastic multi time frame, sur le 1H/2H/4H/J
    Pour cela j’aimerai retourner 4 tranches de signal superposées de 0 jusqu’au 1, du 1 jusqu’à 2 etc..
    Savez vous comment réaliser un plusieurs signaux superposés ?

    Merci par avance

    #177030 quote
    Nicolas
    Keymaster
    Master

    Si j’ai bien compris la demande, il faut faire une sorte de baromètre de 1 à 4 selon la position du stochastique ? Si oui comment sont déterminés les tranches 1,2,3 et 4 ?

    #177040 quote
    Swingueur
    Participant
    Average

    Bonjour,

    J’ai eu fait un indicateur qui transformait un stochastique en barres de couleurs, pour gagner de la place (écran laptop…)

    Pour cela, il suffit de retourner une variable constante à 1, mise en histogramme, et colorée en fonction du code couleur voulu. Par contre, j’avais 8 couleurs (4 zones * 2 états des positions relatives K vs D)

    Pour le multi-timeframe, je dirais : 1/ soit dupliquer l’indicateur et utiliser l’instruction TIMEFRAME 2/soit ajouter une variable de config, et un test conditionnel qui encapsulerait l’instruction TIMEFRAME. Pas sûr que l’option 2 soit faisable (j’avais testé de mettre un if autour de DEFPARAM sans succès). Dans les deux cas, il faudra dupliquer l’indicateur sur le graphique pour avoir 4 histogrammes colorés.

    A voir si c’est cela que vous avez en tête.

    Fabrice

    #177075 quote
    Nicolas
    Keymaster
    Master

    En effet on ne peut pas encapsuler TIMEFRAME dans un if/endif.

    Ceci étant je pense qu’on peut quand même créer 4 histogrammes selon les résultats de 4 timeframes différents dans le même code. J’attends plus d’informations sur la demande pour commencer à coder quelque chose, pour éviter de perdre du temps 🙂

    #177116 quote
    Antoine
    Participant
    Average

    Cette notation stochastic est basée sur l’évolution du K et du D de chaque Time Frame entre différentes tranches de 0 à 100.

    L’objectif aujourd’hui est de traiter chaque time frame indépendamment et retourner 3 couleurs par time frame:
    – Rouge baissier
    – Bleu Mouvements Baissier Neutre
    – Bleu Mouvement Haussier Neutre
    – Vert Haussier

    Je souhaiterai pouvoir retourner plusieurs signaux superposés :
    – 0 à 1 Couleurs du Time Frame 1h
    – 1 à 2 Couleurs du Time Frame 2h
    – 2 à 3 Couleurs du Time Frame 4h
    – 3 à 4 Couleurs du Time Frame J

    La première étape serait d’avoir une bonne traduction couleur de l’évolution du stochastic sur un même graphique

    A l’heure actuelle j’ai uniquement traduit les mouvements baissiers et baissier neutre

    Je ne suis pas encore satisfait de l’interprétation couleur qui est retournée par mon code.

    Je vais vous joindre mes premières étapes de code pour que l’on puisse travailler ensemble et recouper nos idées.

    Le prototype demande encore quelques heures de travail ^^

    La stratégie appliquée serait d’attendre une couleur simultanée entre les différentes Time Frame

    Le 1h passe du bleu ou vert : au rouge avec le 2h/4h/J rouge
    Le 1h passe du bleu ou rouge : au vert avec le 2h/4h/J vert

    Je pense que cette synthèse MTF stochastic serait très pertinente et augmenterait la fiabilité probabilité.
    Cela nous permettrait également de ne plus avoir d’interprétation “humaine” sur chaque Time Frame

    TEST-STO.jpg TEST-STO.jpg
    #177118 quote
    Antoine
    Participant
    Average
    TIMEFRAME(1 HOUR)
    K4d=Stochastic[3,2](close)
    D4d=average[3](K4d)
    
    //d<30
    IF (d4d[0]<30 and d4d[0]>d4d[1]) THEN
    backgroundcolor (255,105,180) ///rouge
    elsif (d4d[0]<30 and d4d[0]<d4d[1]) THEN
    backgroundcolor (255,105,180) ///rouge
    endif
    
    //30<d<50
    if (d4d[0]<50 AND d4d[0]>30 and d4d[0]>d4d[1]) THEN
    backgroundcolor (0,255,255) ///bleu
    elsif (d4d[0]<50 AND d4d[0]>30 and d4d[0]<d4d[1]) THEN
    backgroundcolor (255,105,180) ///rouge
    endif
    
    //d<30
    if (d4d[0]<30 and K4d[0]>K4d[1]) THEN
    backgroundcolor (0,255,255) ///bleu
    elsif (d4d[0]<30 and K4d[0]<K4d[1]) THEN
    backgroundcolor (255,105,180) ///rouge
    endif
    
    //30<d<50
    if (d4d[0]<50 AND d4d[0]>30 and K4d[0]>K4d[1]) THEN
    backgroundcolor (0,255,255) ///bleu
    elsif (d4d[0]<50 AND d4d[0]>30 and K4d[0]<K4d[1]) THEN
    backgroundcolor (255,105,180)///rouge
    endif
    
    //d<30
    IF (d4d[0]<30 and k4d[0]>d4d[0]) THEN
    backgroundcolor (255,105,180)///rouge
    elsif (d4d[0]<30 and k4d[0]<d4d[0]) THEN
    backgroundcolor (255,105,180)///rouge
    endif
    
    //30<d<50
    if (d4d[0]<50 AND d4d[0]>30 and k4d[0]>d4d[0]) THEN
    backgroundcolor (0,255,255) ///bleu
    elsif (d4d[0]<50 AND d4d[0]>30 and k4d[0]<d4d[0]) THEN
    backgroundcolor (255,105,180)///rouge
    endif
    
    //d<30
    IF (d4d[0]<30 and k4d[0]<d4d[0] and (abs(k4d[1]-k4d[0])<15)) THEN
    backgroundcolor (255,105,180)///rouge
    elsif (d4d[0]<30 and k4d[0]>d4d[0] and (abs(k4d[1]-k4d[0])<15)) THEN
    backgroundcolor (255,105,180)///rouge
    endif
    
    //d<30
    IF (d4d[0]<30 and k4d[0]<d4d[0] and (abs(k4d[1]-k4d[0])<30) and (abs(k4d[1]-k4d[0])>15)) THEN
    backgroundcolor (255,105,180)///rouge
    elsif (d4d[0]<30 and k4d[0]>d4d[0] and (abs(k4d[1]-k4d[0])<30)and (abs(k4d[1]-k4d[0])>15)) THEN
    backgroundcolor (255,105,180)///rouge
    endif
    
    //d<30
    IF (d4d[0]<30 and k4d[0]<d4d[0] and (abs(k4d[1]-k4d[0])<45) and (abs(k4d[1]-k4d[0])>30)) THEN
    backgroundcolor (255,105,180) ///rouge
    elsif (d4d[0]<30 and k4d[0]>d4d[0] and (abs(k4d[1]-k4d[0])<45)and (abs(k4d[1]-k4d[0])>30)) THEN
    backgroundcolor (0,255,255) ///bleu
    endif
    
    //d<30
    IF (d4d[0]<30 and k4d[0]<d4d[0] and (abs(k4d[1]-k4d[0])>45) ) THEN
    backgroundcolor (255,105,180)///rouge
    elsif (d4d[0]<30 and k4d[0]>d4d[0] and (abs(k4d[1]-k4d[0])>45)) THEN
    backgroundcolor (0,255,255)///bleu
    else
    cj9=0
    endif
    
    //30<d<50
    IF (d4d[0]<50 AND d4d[0]>30 and k4d[0]<d4d[0] and (abs(k4d[1]-k4d[0])<15)) THEN
    backgroundcolor (255,105,180) ///rouge
    elsif (d4d[0]<50 AND d4d[0]>30 and k4d[0]>d4d[0] and (abs(k4d[1]-k4d[0])<15)) THEN
    backgroundcolor (0,255,255)///bleu
    endif
    
    //30<d<50
    IF (d4d[0]<50 AND d4d[0]>30 and k4d[0]<d4d[0] and (abs(k4d[1]-k4d[0])<30) and (abs(k4d[1]-k4d[0])>15)) THEN
    backgroundcolor (255,105,180)///rouge
    elsif (d4d[0]<50 AND d4d[0]>30 and k4d[0]>d4d[0] and (abs(k4d[1]-k4d[0])<30) and (abs(k4d[1]-k4d[0])>15)) THEN
    backgroundcolor (0,255,255) ///bleu
    endif
    
    //30<d<50
    IF (d4d[0]<50 AND d4d[0]>30 and k4d[0]<d4d[0] and (abs(k4d[1]-k4d[0])<45) and (abs(k4d[1]-k4d[0])>30)) THEN
    backgroundcolor (255,105,180) ///rouge
    elsif (d4d[0]<50 AND d4d[0]>30 and k4d[0]>d4d[0] and (abs(k4d[1]-k4d[0])<45) and (abs(k4d[1]-k4d[0])>30)) THEN
    backgroundcolor (0,255,255)///bleu
    endif
    
    //30<d<50
    IF (d4d[0]<50 AND d4d[0]>30 and k4d[0]<d4d[0] and (abs(k4d[1]-k4d[0])>45) ) THEN
    backgroundcolor (255,105,180) ///rouge
    elsif (d4d[0]<50 AND d4d[0]>30 and k4d[0]>d4d[0] and (abs(k4d[1]-k4d[0])>45) ) THEN
    backgroundcolor (0,255,255) ///bleu
    endif
    
    Return
    #177144 quote
    Nicolas
    Keymaster
    Master

    Comme le code est assez long, je te mets sur la piste avec les deux premières conditions:

    TIMEFRAME(1 HOUR)
    K4d=Stochastic[3,2](close)
    D4d=average[3](K4d)
    
    //d<30
    IF (d4d[0]<30 and d4d[0]>d4d[1]) THEN
    //backgroundcolor (255,105,180) ///rouge
    r=255
    g=105
    b=180
    elsif (d4d[0]<30 and d4d[0]<d4d[1]) THEN
    //backgroundcolor (255,105,180) ///rouge
    r=255
    g=105
    b=180
    endif
    
    //30<d<50
    if (d4d[0]<50 AND d4d[0]>30 and d4d[0]>d4d[1]) THEN
    //backgroundcolor (0,255,255) ///bleu
    r=0
    g=255
    b=255
    elsif (d4d[0]<50 AND d4d[0]>30 and d4d[0]<d4d[1]) THEN
    //backgroundcolor (255,105,180) ///rouge
    r=0
    g=255
    b=255
    endif
    
    timeframe(default)
    drawtext("█",barindex,0,dialog,bold,20) coloured(r,g,b)
    
    
    Return 0

    On définit le code couleur RGB (red,green,blue) en fonction de tes conditions et on à la fin on trace un rectangle unique avec ces couleurs sur la valeur 0.

    drawtext-heatmap.png drawtext-heatmap.png
    #177146 quote
    Antoine
    Participant
    Average

    Merci beaucoup Nicolas !
    Que penses tu de l’idée ?

    #177191 quote
    Nicolas
    Keymaster
    Master

    C’est amusant, fait nous part du code complet pour qu’on puisse voir comment améliorer l’ensemble.

    #177303 quote
    Antoine
    Participant
    Average
    TIMEFRAME(1 HOUR)
    K4a=Stochastic[3,2](close)
    D4a=average[3](K4a)
    
    If K4a[0]<50 Then
    Baisse=1
    Else
    Baisse=0
    Endif
    
    If K4a[0]>50 Then
    Hausse=1
    Else
    Hausse=0
    Endif
    
    ///rouge
    IF ( D4a[0]<65 AND D4a[0]<D4a[1] and K4a[0]<D4a[0] and K4a[0]<30 and K4a[0]<K4a[1]) THEN
    R=255
    G=105
    B=180
    X1=1
    Else
    X1=0
    endif
    
    IF (D4a[0]<55 and K4a[0]<D4a[0] and D4a[0]<D4a[1]) THEN
    R=255
    G=105
    B=180
    X2=1
    Else
    X2=0
    endif
    
    IF (D4a[0]<20) THEN
    R=255
    G=105
    B=180
    X3=1
    Else
    X3=0
    endif
    
    ////vert
    IF (D4a[0]>35 AND D4a[0]>D4a[1] and K4a[0]>D4a[0] and K4a[0]>70 and K4a[0]>K4a[1]) THEN
    R=0
    G=255
    B=127
    X4=1
    Else
    X4=0
    endif
    
    IF (D4a[0]>55 and K4a[0]>D4a[0] and D4a[0]>D4a[1]) THEN
    R=0
    G=255
    B=127
    X5=1
    Else
    X5=0
    endif
    
    IF (D4a[0]>80) THEN
    R=0
    G=255
    B=127
    X6=1
    Else
    X6=0
    endif
    
    /////////////////////////Si neutre dans de la baisse
    IF (X1+X2+X3)=0 and Baisse=1 Then
    R=255
    G=255
    B=255
    Endif
    
    /////////////////////////Si neutre dans de la hausse
    IF (X4+X5+X6)=0 and Hausse=1 Then
    R=255
    G=255
    B=255
    Endif
    
    TIMEFRAME(2 HOUR)
    K4b=Stochastic[3,2](close)
    D4b=average[3](K4b)
    
    If K4B[0]<50 Then
    Baisse2=1
    Else
    Baisse2=0
    Endif
    
    If K4B[0]>50 Then
    Hausse2=1
    Else
    Hausse2=0
    Endif
    
    ///rouge
    IF (D4b[0]<65 AND D4b[0]<D4b[1] and K4b[0]<D4b[0] and K4b[0]<30 and K4b[0]<K4b[1]) THEN
    R1=255
    G1=105
    B1=180
    X7=1
    Else
    X7=0
    endif
    
    IF (D4b[0]<55 and K4b[0]<D4b[0] and D4b[0]<D4b[1]) THEN
    R1=255
    G1=105
    B1=180
    X8=1
    Else
    X8=0
    endif
    
    IF (D4b[0]<20) THEN
    R1=255
    G1=105
    B1=180
    X9=1
    Else
    X9=0
    endif
    
    ////veR1t
    IF (D4b[0]>35 AND D4b[0]>D4b[1] and K4b[0]>D4b[0] and K4b[0]>70 and K4b[0]>K4b[1]) THEN
    R1=0
    G1=255
    B1=127
    X10=1
    Else
    X10=0
    endif
    
    IF (D4b[0]>55 and K4b[0]>D4b[0] and D4b[0]>D4b[1]) THEN
    R1=0
    G1=255
    B1=127
    X11=1
    Else
    X11=0
    endif
    
    IF (D4b[0]>80) THEN
    R1=0
    G1=255
    B1=127
    X12=1
    Else
    X12=0
    endif
    
    /////////////////////////Si neutre dans de la baisse
    IF (X7+X8+X9)=0 and Baisse2=1 Then
    R1=255
    G1=255
    B1=255
    Endif
    
    /////////////////////////Si neutre dans de la hausse
    IF (X10+X11+X12)=0 and Hausse2=1 Then
    R1=255
    G1=255
    B1=255
    Endif
     
    TIMEFRAME(4 HOUR)
    K4c=Stochastic[3,2](close)
    D4c=average[3](K4c)
    
    If K4C[0]<50 Then
    Baisse3=1
    Else
    Baisse3=0
    Endif
    
    If K4C[0]>50 Then
    Hausse3=1
    Else
    Hausse3=0
    Endif
    
    
    ///rouge
    IF (D4c[0]<65 AND D4c[0]<D4c[1] and K4c[0]<D4c[0] and K4c[0]<30 and K4c[0]<K4c[1]) THEN
    R20=255
    G20=105
    B20=180
    X13=1
    Else
    X13=0
    endif
    
    IF (D4c[0]<55 and K4c[0]<D4c[0] and D4c[0]<D4c[1]) THEN
    R20=255
    G20=105
    B20=180
    X14=1
    Else
    X14=0
    endif
    
    IF (D4c[0]<20) THEN
    R20=255
    G20=105
    B20=180
    X15=1
    Else
    X15=0
    endif
    
    ////veR1t
    IF (D4c[0]>35 AND D4c[0]>D4c[1] and K4c[0]>D4c[0] and K4c[0]>70 and K4c[0]>K4c[1]) THEN
    R20=0
    G20=255
    B20=127
    X16=1
    Else
    X16=0
    endif
    
    IF (D4c[0]>55 and K4c[0]>D4c[0] and D4c[0]>D4c[1]) THEN
    R20=0
    G20=255
    B20=127
    X17=1
    Else
    X17=0
    endif
    
    IF (D4c[0]>80) THEN
    R20=0
    G20=255
    B20=127
    X18=1
    Else
    X18=0
    endif
     
    /////////////////////////Si neutre dans de la baisse
    IF (X13+X14+X15)=0 and Baisse3=1 Then
    R20=255
    G20=255
    B20=255
    Endif
    
    /////////////////////////Si neutre dans de la hausse
    IF (X16+X17+X18)=0 and Hausse3=1 Then
    R20=255
    G20=255
    B20=255
    Endif
    
    TIMEFRAME(1 Day)
    K4d=Stochastic[3,2](close)
    D4d=average[3](K4d)
    
    If K4D[0]<50 Then
    Baisse4=1
    Else
    Baisse4=0
    Endif
    
    If K4D[0]>50 Then
    Hausse4=1
    Else
    Hausse4=0
    Endif
    
    ///rouge
    IF (D4d[0]<65 AND D4d[0]<D4d[1] and K4d[0]<D4d[0] and K4d[0]<30 and K4d[0]<K4d[1]) THEN
    R30=255
    G30=105
    B30=180
    X19=1
    Else
    X19=0
    endif
    
    IF (D4d[0]<55 and K4d[0]<D4d[0] and D4d[0]<D4d[1]) THEN
    R30=255
    G30=105
    B30=180
    X20=1
    Else
    X20=0
    endif
    
    IF (D4d[0]<20) THEN
    R30=255
    G30=105
    B30=180
    X21=1
    Else
    X21=0
    endif
    
    ////veR1t
    IF (D4d[0]>35 AND D4d[0]>D4d[1] and K4d[0]>D4d[0] and K4d[0]>70 and K4d[0]>K4d[1]) THEN
    R30=0
    G30=255
    B30=127
    X22=1
    Else
    X22=0
    endif
    
    IF (D4d[0]>55 and K4d[0]>D4d[0] and D4d[0]>D4d[1]) THEN
    R30=0
    G30=255
    B30=127
    X23=1
    Else
    X23=0
    endif
    
    IF (D4d[0]>80) THEN
    R30=0
    G30=255
    B30=127
    X24=1
    Else
    X24=0
    endif
    
    /////////////////////////Si neutre dans de la baisse
    IF (X19+X20+X21)=0 and Baisse4=1 Then
    R30=255
    G30=255
    B30=255
    Endif
    
    /////////////////////////Si neutre dans de la hausse
    IF (X22+X23+X24)=0 and Hausse4=1 Then
    R30=255
    G30=255
    B30=255
    Endif
     
    timeFrame(default)
    drawtext("█",barindex,0,dialog,bold,20) coloured(r,g,b)
    drawtext("█",barindex,1,dialog,bold,20) coloured(r1,g1,b1)
    drawtext("█",barindex,2,dialog,bold,20) coloured(r20,g20,b20)
    drawtext("█",barindex,3,dialog,bold,20) coloured(r30,g30,b30)
    
    Return 0, 1, 2, 3
    
    #177304 quote
    Antoine
    Participant
    Average

    Voila à quoi ressemble l’indicateur sur le TMF 1h, donnez moi des idées pour que l’on puisse l’améliorer !

    Heat-Map.jpg Heat-Map.jpg
    #177385 quote
    Nicolas
    Keymaster
    Master

    Merci pour le retour avec le code complet, cela me fait penser à un téléscripteur 😆

    Au niveau heatmap sur une large plage de données sur la stochastique, on avait cela à l’époque: https://www.prorealcode.com/topic/possible-to-code-this-in-prt/page/2/#post-101985

    spe5.jpg spe5.jpg
    #177398 quote
    Antoine
    Participant
    Average

    Pas de soucis j’apprends beaucoup des idées de chacun
    Qu’est ce que tu penses que je pourrais amélioré, as-tu d’autres idées ?
    Quel message vous avez voulu faire ressortir à travers cette ancienne Heat MAP ?

    Pour ma part l’idée était d’enlever l’interprétation visuelle du stochastic en MTF et de le retranscrire sous forme de couleur.
    Je prends mes positions sur le TMF 1h, c’est pourquoi je vais établir une stratégie sur le 30mn – 1h – 2h (voir plus)
    L’ objectif serait de savoir comment le 1h va être impacté par le présent et comment est-ce qu’il va tenir dans le temps.

    #177427 quote
    Nicolas
    Keymaster
    Master

    L’idée de cet ancien code est de simplement visualiser le degré de 0 à 100 des stochastic de x à y périodes. Une stochastique étant un simple thermomètre de la valeur du prix entre les 2 dernières bornes plus haut / plus bas, si un grand nombre de stochastique est rouge alors un breakout majeur s’opère par le bas.

Viewing 14 posts - 1 through 14 (of 14 total)
  • You must be logged in to reply to this topic.

HEAT MAP Notation Stochastic


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
Antoine @antoine83640 Participant
Summary

This topic contains 13 replies,
has 3 voices, and was last updated by Nicolas
4 years, 6 months ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 09/08/2021
Status: Active
Attachments: 4 files
Logo Logo
Loading...