HEAT MAP Notation Stochastic
Forums › ProRealTime forum Français › Support ProBuilder › HEAT MAP Notation Stochastic
- This topic has 13 replies, 3 voices, and was last updated 3 years ago by Nicolas.
-
-
09/08/2021 at 3:15 PM #177026
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
09/08/2021 at 3:58 PM #17703009/08/2021 at 7:00 PM #177040Bonjour,
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
09/09/2021 at 7:09 AM #177075En 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 🙂
09/09/2021 at 10:37 AM #177116Cette 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 HaussierJe 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 JLa 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 vertJe 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 Frame09/09/2021 at 10:39 AM #177118123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105TIMEFRAME(1 HOUR)K4d=Stochastic[3,2](close)D4d=average[3](K4d)//d<30IF (d4d[0]<30 and d4d[0]>d4d[1]) THENbackgroundcolor (255,105,180) ///rougeelsif (d4d[0]<30 and d4d[0]<d4d[1]) THENbackgroundcolor (255,105,180) ///rougeendif//30<d<50if (d4d[0]<50 AND d4d[0]>30 and d4d[0]>d4d[1]) THENbackgroundcolor (0,255,255) ///bleuelsif (d4d[0]<50 AND d4d[0]>30 and d4d[0]<d4d[1]) THENbackgroundcolor (255,105,180) ///rougeendif//d<30if (d4d[0]<30 and K4d[0]>K4d[1]) THENbackgroundcolor (0,255,255) ///bleuelsif (d4d[0]<30 and K4d[0]<K4d[1]) THENbackgroundcolor (255,105,180) ///rougeendif//30<d<50if (d4d[0]<50 AND d4d[0]>30 and K4d[0]>K4d[1]) THENbackgroundcolor (0,255,255) ///bleuelsif (d4d[0]<50 AND d4d[0]>30 and K4d[0]<K4d[1]) THENbackgroundcolor (255,105,180)///rougeendif//d<30IF (d4d[0]<30 and k4d[0]>d4d[0]) THENbackgroundcolor (255,105,180)///rougeelsif (d4d[0]<30 and k4d[0]<d4d[0]) THENbackgroundcolor (255,105,180)///rougeendif//30<d<50if (d4d[0]<50 AND d4d[0]>30 and k4d[0]>d4d[0]) THENbackgroundcolor (0,255,255) ///bleuelsif (d4d[0]<50 AND d4d[0]>30 and k4d[0]<d4d[0]) THENbackgroundcolor (255,105,180)///rougeendif//d<30IF (d4d[0]<30 and k4d[0]<d4d[0] and (abs(k4d[1]-k4d[0])<15)) THENbackgroundcolor (255,105,180)///rougeelsif (d4d[0]<30 and k4d[0]>d4d[0] and (abs(k4d[1]-k4d[0])<15)) THENbackgroundcolor (255,105,180)///rougeendif//d<30IF (d4d[0]<30 and k4d[0]<d4d[0] and (abs(k4d[1]-k4d[0])<30) and (abs(k4d[1]-k4d[0])>15)) THENbackgroundcolor (255,105,180)///rougeelsif (d4d[0]<30 and k4d[0]>d4d[0] and (abs(k4d[1]-k4d[0])<30)and (abs(k4d[1]-k4d[0])>15)) THENbackgroundcolor (255,105,180)///rougeendif//d<30IF (d4d[0]<30 and k4d[0]<d4d[0] and (abs(k4d[1]-k4d[0])<45) and (abs(k4d[1]-k4d[0])>30)) THENbackgroundcolor (255,105,180) ///rougeelsif (d4d[0]<30 and k4d[0]>d4d[0] and (abs(k4d[1]-k4d[0])<45)and (abs(k4d[1]-k4d[0])>30)) THENbackgroundcolor (0,255,255) ///bleuendif//d<30IF (d4d[0]<30 and k4d[0]<d4d[0] and (abs(k4d[1]-k4d[0])>45) ) THENbackgroundcolor (255,105,180)///rougeelsif (d4d[0]<30 and k4d[0]>d4d[0] and (abs(k4d[1]-k4d[0])>45)) THENbackgroundcolor (0,255,255)///bleuelsecj9=0endif//30<d<50IF (d4d[0]<50 AND d4d[0]>30 and k4d[0]<d4d[0] and (abs(k4d[1]-k4d[0])<15)) THENbackgroundcolor (255,105,180) ///rougeelsif (d4d[0]<50 AND d4d[0]>30 and k4d[0]>d4d[0] and (abs(k4d[1]-k4d[0])<15)) THENbackgroundcolor (0,255,255)///bleuendif//30<d<50IF (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)) THENbackgroundcolor (255,105,180)///rougeelsif (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)) THENbackgroundcolor (0,255,255) ///bleuendif//30<d<50IF (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)) THENbackgroundcolor (255,105,180) ///rougeelsif (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)) THENbackgroundcolor (0,255,255)///bleuendif//30<d<50IF (d4d[0]<50 AND d4d[0]>30 and k4d[0]<d4d[0] and (abs(k4d[1]-k4d[0])>45) ) THENbackgroundcolor (255,105,180) ///rougeelsif (d4d[0]<50 AND d4d[0]>30 and k4d[0]>d4d[0] and (abs(k4d[1]-k4d[0])>45) ) THENbackgroundcolor (0,255,255) ///bleuendifReturn09/09/2021 at 1:44 PM #177144Comme le code est assez long, je te mets sur la piste avec les deux premières conditions:
1234567891011121314151617181920212223242526272829303132333435TIMEFRAME(1 HOUR)K4d=Stochastic[3,2](close)D4d=average[3](K4d)//d<30IF (d4d[0]<30 and d4d[0]>d4d[1]) THEN//backgroundcolor (255,105,180) ///rouger=255g=105b=180elsif (d4d[0]<30 and d4d[0]<d4d[1]) THEN//backgroundcolor (255,105,180) ///rouger=255g=105b=180endif//30<d<50if (d4d[0]<50 AND d4d[0]>30 and d4d[0]>d4d[1]) THEN//backgroundcolor (0,255,255) ///bleur=0g=255b=255elsif (d4d[0]<50 AND d4d[0]>30 and d4d[0]<d4d[1]) THEN//backgroundcolor (255,105,180) ///rouger=0g=255b=255endiftimeframe(default)drawtext("█",barindex,0,dialog,bold,20) coloured(r,g,b)Return 0On 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.
09/09/2021 at 1:57 PM #17714609/10/2021 at 10:01 AM #17719109/12/2021 at 12:16 PM #177303HEAT MAP 1 TO J123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352TIMEFRAME(1 HOUR)K4a=Stochastic[3,2](close)D4a=average[3](K4a)If K4a[0]<50 ThenBaisse=1ElseBaisse=0EndifIf K4a[0]>50 ThenHausse=1ElseHausse=0Endif///rougeIF ( D4a[0]<65 AND D4a[0]<D4a[1] and K4a[0]<D4a[0] and K4a[0]<30 and K4a[0]<K4a[1]) THENR=255G=105B=180X1=1ElseX1=0endifIF (D4a[0]<55 and K4a[0]<D4a[0] and D4a[0]<D4a[1]) THENR=255G=105B=180X2=1ElseX2=0endifIF (D4a[0]<20) THENR=255G=105B=180X3=1ElseX3=0endif////vertIF (D4a[0]>35 AND D4a[0]>D4a[1] and K4a[0]>D4a[0] and K4a[0]>70 and K4a[0]>K4a[1]) THENR=0G=255B=127X4=1ElseX4=0endifIF (D4a[0]>55 and K4a[0]>D4a[0] and D4a[0]>D4a[1]) THENR=0G=255B=127X5=1ElseX5=0endifIF (D4a[0]>80) THENR=0G=255B=127X6=1ElseX6=0endif/////////////////////////Si neutre dans de la baisseIF (X1+X2+X3)=0 and Baisse=1 ThenR=255G=255B=255Endif/////////////////////////Si neutre dans de la hausseIF (X4+X5+X6)=0 and Hausse=1 ThenR=255G=255B=255EndifTIMEFRAME(2 HOUR)K4b=Stochastic[3,2](close)D4b=average[3](K4b)If K4B[0]<50 ThenBaisse2=1ElseBaisse2=0EndifIf K4B[0]>50 ThenHausse2=1ElseHausse2=0Endif///rougeIF (D4b[0]<65 AND D4b[0]<D4b[1] and K4b[0]<D4b[0] and K4b[0]<30 and K4b[0]<K4b[1]) THENR1=255G1=105B1=180X7=1ElseX7=0endifIF (D4b[0]<55 and K4b[0]<D4b[0] and D4b[0]<D4b[1]) THENR1=255G1=105B1=180X8=1ElseX8=0endifIF (D4b[0]<20) THENR1=255G1=105B1=180X9=1ElseX9=0endif////veR1tIF (D4b[0]>35 AND D4b[0]>D4b[1] and K4b[0]>D4b[0] and K4b[0]>70 and K4b[0]>K4b[1]) THENR1=0G1=255B1=127X10=1ElseX10=0endifIF (D4b[0]>55 and K4b[0]>D4b[0] and D4b[0]>D4b[1]) THENR1=0G1=255B1=127X11=1ElseX11=0endifIF (D4b[0]>80) THENR1=0G1=255B1=127X12=1ElseX12=0endif/////////////////////////Si neutre dans de la baisseIF (X7+X8+X9)=0 and Baisse2=1 ThenR1=255G1=255B1=255Endif/////////////////////////Si neutre dans de la hausseIF (X10+X11+X12)=0 and Hausse2=1 ThenR1=255G1=255B1=255EndifTIMEFRAME(4 HOUR)K4c=Stochastic[3,2](close)D4c=average[3](K4c)If K4C[0]<50 ThenBaisse3=1ElseBaisse3=0EndifIf K4C[0]>50 ThenHausse3=1ElseHausse3=0Endif///rougeIF (D4c[0]<65 AND D4c[0]<D4c[1] and K4c[0]<D4c[0] and K4c[0]<30 and K4c[0]<K4c[1]) THENR20=255G20=105B20=180X13=1ElseX13=0endifIF (D4c[0]<55 and K4c[0]<D4c[0] and D4c[0]<D4c[1]) THENR20=255G20=105B20=180X14=1ElseX14=0endifIF (D4c[0]<20) THENR20=255G20=105B20=180X15=1ElseX15=0endif////veR1tIF (D4c[0]>35 AND D4c[0]>D4c[1] and K4c[0]>D4c[0] and K4c[0]>70 and K4c[0]>K4c[1]) THENR20=0G20=255B20=127X16=1ElseX16=0endifIF (D4c[0]>55 and K4c[0]>D4c[0] and D4c[0]>D4c[1]) THENR20=0G20=255B20=127X17=1ElseX17=0endifIF (D4c[0]>80) THENR20=0G20=255B20=127X18=1ElseX18=0endif/////////////////////////Si neutre dans de la baisseIF (X13+X14+X15)=0 and Baisse3=1 ThenR20=255G20=255B20=255Endif/////////////////////////Si neutre dans de la hausseIF (X16+X17+X18)=0 and Hausse3=1 ThenR20=255G20=255B20=255EndifTIMEFRAME(1 Day)K4d=Stochastic[3,2](close)D4d=average[3](K4d)If K4D[0]<50 ThenBaisse4=1ElseBaisse4=0EndifIf K4D[0]>50 ThenHausse4=1ElseHausse4=0Endif///rougeIF (D4d[0]<65 AND D4d[0]<D4d[1] and K4d[0]<D4d[0] and K4d[0]<30 and K4d[0]<K4d[1]) THENR30=255G30=105B30=180X19=1ElseX19=0endifIF (D4d[0]<55 and K4d[0]<D4d[0] and D4d[0]<D4d[1]) THENR30=255G30=105B30=180X20=1ElseX20=0endifIF (D4d[0]<20) THENR30=255G30=105B30=180X21=1ElseX21=0endif////veR1tIF (D4d[0]>35 AND D4d[0]>D4d[1] and K4d[0]>D4d[0] and K4d[0]>70 and K4d[0]>K4d[1]) THENR30=0G30=255B30=127X22=1ElseX22=0endifIF (D4d[0]>55 and K4d[0]>D4d[0] and D4d[0]>D4d[1]) THENR30=0G30=255B30=127X23=1ElseX23=0endifIF (D4d[0]>80) THENR30=0G30=255B30=127X24=1ElseX24=0endif/////////////////////////Si neutre dans de la baisseIF (X19+X20+X21)=0 and Baisse4=1 ThenR30=255G30=255B30=255Endif/////////////////////////Si neutre dans de la hausseIF (X22+X23+X24)=0 and Hausse4=1 ThenR30=255G30=255B30=255EndiftimeFrame(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, 309/12/2021 at 12:23 PM #17730409/13/2021 at 9:58 AM #177385Merci 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
09/13/2021 at 10:25 AM #177398Pas 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.09/13/2021 at 3:04 PM #177427L’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.
-
AuthorPosts