Erreur de signal sur le PP JOUR
Forums › ProRealTime forum Français › Support ProBuilder › Erreur de signal sur le PP JOUR
- This topic has 3 replies, 2 voices, and was last updated 3 years ago by Roland57800.
-
-
09/02/2021 at 9:55 AM #176646
Bonjour,
j’ai codé quelques lignes pour me donner un signal de vente avec le point pivot Jour.
Le principe de croiser à la baisse le point pivot JOUR ( ou la hausse )et je viens de me rendre compte que j’ai une erreur et pourtant j’utilise
l’expression crosses.
Dans l’image jointe le PP Jour n’est pas croisé à la baisse, et j’ai
la flèche noire qui s’affiche
Je joins le code , et je voudrais comprendre d’où vient l’erreurMerci pour la réponse
Signal sur PP Jour123456789101112131415161718192021222324252627282930313233343536// VALEUR JOURdh = DHigh(1)dl = DLow(1)// FIBONACCI AVEC POINTS PIVOTSP = (dh + dl + DClose(1))/3// HORAIRES D'AFFICHAGE DES SIGNAUXTimeAchat = time >= 080000 and time <= 220000TimeVente = time >= 080000 and time <= 220000// --- // -- ---------------------------------------- SIGNAUX PIVOT JOUR -------------------------------------------------if close crosses under P and TimeVente thenC = closeENDIFif CLOSE crosses under C - 3 thenDRAWARROWDOWN (barindex , High + 15 ) coloured(0,0,0) // NoirENDIFif close crosses over P and TimeAchat thenD = closeENDIFif CLOSE crosses over D + 3 thenDRAWARROWUP (barindex , low - 5 ) coloured(0,191,255) // Deep Sky BlueENDIFRETURNprovient l’erreur
09/02/2021 at 3:55 PM #176672En ligne 24, la condition pour faire apparaitre un signal est que la clôture passe sous C-3, mais même si C n’a pas été mis à jour en ligne 21 (pivot pas croisé), il a tout de même une ancienne valeur. Par exemple sur un graphe Dax UT15 cfd IG, C serait à 15864 depuis le 01/09 bougie de 14h30 à 14h45, et même si pas modifié le 02/09 au matin par ce non-cross, il y a bien passage sous vieille valeur 15864-3=15861.
Il faut donc décider le moment où une valeur de C n’est plus utile, pour réinitialiser C suffisamment haut, de sorte que le if de la ligne 24 ne puisse pas intervenir tant que C n’a pas été à nouveau placé en valeur exploitable par la ligne 21 (même chose respectivement pour réinitialisation de D suffisamment bas dans l’autre sens)
09/02/2021 at 4:27 PM #176673Par exemple comme ceci, en réinitialisant C (resp.D) juste après drawarrowdown (resp.up) si pas utilisé plus loin dans une autre partie du code:
123456789101112131415161718192021222324252627282930313233// VALEUR JOURdh = DHigh(1)dl = DLow(1)// FIBONACCI AVEC POINTS PIVOTSP = (dh + dl + DClose(1))/3// HORAIRES D'AFFICHAGE DES SIGNAUXTimeAchat = time > 080000 and time <= 220000TimeVente = time > 080000 and time <= 220000// --- // -- ---------------------------------------- SIGNAUX PIVOT JOUR -------------------------------------------------if close crosses under P and TimeVente thenC = closeENDIFif CLOSE crosses under C - 3 thenDRAWARROWDOWN (barindex , High + 15 ) coloured(0,0,0) // NoirC=10*high[1]ENDIFif close crosses over P and TimeAchat thenD = closeENDIFif CLOSE crosses over D + 3 thenDRAWARROWUP (barindex , low - 5 ) coloured(0,191,255) // Deep Sky BlueD=0ENDIFRETURN C as "C", d as "D", P as "P"Avec les c, d et p en ligne return, on peut visualiser avec et sans les réinitialisations pour voir leur impact avant/après.
Aussi, dans le cas où le but était de ne commencer qu’à 8h, “time” étant un horaire de fin de bougie et non de début, j’ai changé le time>=8h par un time>8h (mais si c’eétait intentionnel pour avoir un signal avant 8h il suffit de remettre le >=).
09/02/2021 at 5:17 PM #176681Merci JC_bywan.
Beaucoup d’explications que je vais appliquer.
Pour info, il n’y a rien d’autres dans le code que ce que j’ai envoyé.Donc les explications me vont parfaitement et je comprends bien
ou j’ai fait les erreurs de codage.
Merci encore pour toutes ces explications.Bonne soirée
Cordialement -
AuthorPosts
Find exclusive trading pro-tools on