Alerte une fois le segment tracé
Forums › ProRealTime forum Français › Support ProScreener › Alerte une fois le segment tracé
- This topic has 12 replies, 2 voices, and was last updated 5 years ago by Matriciel.
-
-
01/16/2019 at 2:06 PM #88806
Bonjour Nicolas, bonjour à tous,
J’aimerais que mon screener me prévienne lorsqu’un segment est tracé.
J’ai ma base ci-jointe qui fonctionne très bien comme indicateur mais je n’arrive pas à créer le screener qui en ressort.
Peux-tu m’aider s’il-te-plait ?
1234567891011121314IF (MM1h[1]>MM1h AND MM1h[1]>MM1h[2]) THENextremum2=MM1h[1]extremum1=highest[LookbackMM1h](MM1h)preciomax2=close[1]preciomax=Highest[LookbackMM1h](close)IF(extremum2<extremum1 AND preciomax2>preciomax[1]) THENfor i=1 to LookbackMM1hif MM1h[i]=extremum1 thenzz=idrawsegment (barindex[1], MM1h[1], barindex[zz], MM1h[zz]) coloured(0,0,0)ENDIFnextENDIFENDIFMerci beaucoup !
01/16/2019 at 3:17 PM #8881601/16/2019 at 4:22 PM #88829Merci Nicolas.
J’ai fait comme suit mais j’ai l’impression que mon screener affiche beaucoup trop de résultats
123456789101112131415161718192021222324252627IF (MM1h[1]>MM1h AND MM1h[1]>MM1h[2]) THENextremum2=MM1h[1]extremum1=highest[LookbackMM1h](MM1h)preciomax2=close[1]preciomax=Highest[LookbackMM1h](close)IF(extremum2<extremum1 AND preciomax2>preciomax[1]) THENfor i=1 to LookbackMM1hif MM1h[i]=extremum1 thenzz=isegment1 = barindex[1]segment2 = MM1h[1]segment3 = barindex[zz]segment4 = MM1h[zz]ENDIFnextENDIFENDIFsegment = segment1 AND segment2 AND segment3 AND segment4IF segment <> segment[1] THENtoutbon = 0elsetoutbon = 1ENDIFSCREENER [toutbon]!
Qu’en penses-tu ?
01/21/2019 at 8:52 AM #8920701/21/2019 at 9:59 AM #8921804/10/2019 at 10:51 AM #95930Bonjour Nicolas,
Le screener que j’ai créé ci-dessus fonctionne très bien mais il affiche tous les instruments dont il y a eu un segment de tracé, il y a 5 minutes, 15 minutes ou 1 heure or je voudrais qu’il affiche seulement les instruments dont le segment vient d’être tracé à l’instant T.
Que faut-il renseigner dans mon code ?
Merci pour ton aide.
DJ
04/10/2019 at 2:55 PM #95953Ta variable ‘toutbon’ reste à l’état TRUE, il faut donc la remettre à FALSE (soit 0) à chaque nouvelle barre lors de la lecture du code, ainsi on la testera vrai que sur la dernière. Donc ajouter
1toutbon=0en tout début du code par exemple (non testé, car je n’ai plus la logique en tête de ton screener et je ne pense pas que l’on est la dernière version dans le sujet ?).
1 user thanked author for this post.
04/10/2019 at 3:29 PM #9596004/11/2019 at 8:49 AM #96029Bonjour Nicolas,
Ca ne fonctionne pas, le screener n’a pas détecté le segment tracé comme dans mon indicateur.
C’est un screener qui détecte les divergences de mon indicateur. Voici le code comme tu me l’as suggéré plus haut :
1234567891011121314151617181920212223242526272829toutbon = 0IF (MM1h[1]>MM1h AND MM1h[1]>MM1h[2]) THENextremum2=MM1h[1]extremum1=highest[LookbackMM1h](MM1h)preciomax2=close[1]preciomax=Highest[LookbackMM1h](close)IF(extremum2<extremum1 AND preciomax2>preciomax[1]) THENfor i=1 to LookbackMM1hif MM1h[i]=extremum1 thenzz=isegment1 = barindex[1]segment2 = MM1h[1]segment3 = barindex[zz]segment4 = MM1h[zz]ENDIFnextENDIFENDIFsegment = segment1 AND segment2 AND segment3 AND segment4IF segment <> segment[1] THENtoutbon = 0elsetoutbon = 1ENDIFSCREENER [toutbon]Qu’y a-t-il à corriger ? Merci beaucoup.
04/11/2019 at 9:20 AM #96035Alors, je n’ai pas les codes complets pour tester, donc essaie plutôt de cette façon pour voir :
123456789101112131415161718192021222324252627IF (MM1h[1]>MM1h AND MM1h[1]>MM1h[2]) THENextremum2=MM1h[1]extremum1=highest[LookbackMM1h](MM1h)preciomax2=close[1]preciomax=Highest[LookbackMM1h](close)IF(extremum2<extremum1 AND preciomax2>preciomax[1]) THENfor i=1 to LookbackMM1hif MM1h[i]=extremum1 thenzz=isegment1 = barindex[1]segment2 = MM1h[1]segment3 = barindex[zz]segment4 = MM1h[zz]ENDIFnextENDIFENDIFsegment = segment1 AND segment2 AND segment3 AND segment4IF segment <> segment[1] THENtoutbon = 1elsetoutbon = 0ENDIFSCREENER [toutbon]04/11/2019 at 1:14 PM #96083Tu as raison, voici le code complet :
Je l’applique sur un timeframe de 5 minutes.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364TF = 5LookbackMM1h = 720RGL1h = Linearregression[720/TF](close)RGLJour = Linearregression[1440/TF](close)A = (RGL1h - RGLJour)MM1h = (RGL1h + A)///divergence baissièreIF (MM1h[1]>MM1h AND MM1h[1]>MM1h[2]) THENextremum2=MM1h[1]extremum1=highest[LookbackMM1h](MM1h)preciomax2=close[1]preciomax=Highest[LookbackMM1h](close)IF(extremum2<extremum1 AND preciomax2>preciomax[1]) THENfor i=1 to LookbackMM1hif MM1h[i]=extremum1 thenzz=isegment1 = barindex[1]segment2 = MM1h[1]segment3 = barindex[zz]segment4 = MM1h[zz]ENDIFnextENDIFENDIFsegment = segment1 AND segment2 AND segment3 AND segment4IF segment <> segment[1] THENVente = 0elseVente = 1ENDIF///divergence haussièreIF (MM1h[1]<MM1h AND MM1h[1]<MM1h[2]) THENextremum22d=MM1h[1]extremum11d=lowest[LookbackMM1h](MM1h)preciomin2d=close[1]preciomind=lowest[LookbackMM1h](close)IF(extremum22d>extremum11d AND preciomin2d<preciomind[1]) THENfor i2d=1 to LookbackMM1hif MM1h[i2d]=extremum11d[1] thenzz2d=i2dsegment5 = barindex[1]segment6 = MM1h[1]segment7 = barindex[zz2d]segment8 = MM1h[zz2d]ENDIFnextENDIFENDIFsegmentbis = segment5 AND segment6 AND segment7 AND segment8IF segmentbis <> segmentbis[1] THENAchat = 0elseAchat = 1ENDIFSCREENER [Vente OR Achat]Y a-t-il une erreur d’écriture ?
04/11/2019 at 1:18 PM #96084J’inverserai les conditions booléennes achat et vente pour nous donner le moment où la valeur des coordonnées de tes divergences changent et non pas l’inverse, car tu sembles remettre à 0 leurs tests uniquement quand une nouvelle divergence arrivent ?! (ou alors je n’ai pas compris la logique derrière l’indicateur).
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364TF = 5LookbackMM1h = 720RGL1h = Linearregression[720/TF](close)RGLJour = Linearregression[1440/TF](close)A = (RGL1h - RGLJour)MM1h = (RGL1h + A)///divergence baissièreIF (MM1h[1]>MM1h AND MM1h[1]>MM1h[2]) THENextremum2=MM1h[1]extremum1=highest[LookbackMM1h](MM1h)preciomax2=close[1]preciomax=Highest[LookbackMM1h](close)IF(extremum2<extremum1 AND preciomax2>preciomax[1]) THENfor i=1 to LookbackMM1hif MM1h[i]=extremum1 thenzz=isegment1 = barindex[1]segment2 = MM1h[1]segment3 = barindex[zz]segment4 = MM1h[zz]ENDIFnextENDIFENDIFsegment = segment1 AND segment2 AND segment3 AND segment4IF segment <> segment[1] THENVente = 1elseVente = 0ENDIF///divergence haussièreIF (MM1h[1]<MM1h AND MM1h[1]<MM1h[2]) THENextremum22d=MM1h[1]extremum11d=lowest[LookbackMM1h](MM1h)preciomin2d=close[1]preciomind=lowest[LookbackMM1h](close)IF(extremum22d>extremum11d AND preciomin2d<preciomind[1]) THENfor i2d=1 to LookbackMM1hif MM1h[i2d]=extremum11d[1] thenzz2d=i2dsegment5 = barindex[1]segment6 = MM1h[1]segment7 = barindex[zz2d]segment8 = MM1h[zz2d]ENDIFnextENDIFENDIFsegmentbis = segment5 AND segment6 AND segment7 AND segment8IF segmentbis <> segmentbis[1] THENAchat = 1elseAchat = 0ENDIFSCREENER [Vente OR Achat]04/11/2019 at 2:17 PM #96099Tu as bien compris l’indicateur. 😉
Je vais inverser les conditions booléennes des variables comme tu me le suggères et voir s’il se passe quelque chose.
Je te tiens au courant de la suite des évènements.
Merci en tout cas !
-
AuthorPosts
Find exclusive trading pro-tools on