Mauvaise utilisation de “UpdateOnClose”.
Forums › ProRealTime forum Français › Support ProBuilder › Mauvaise utilisation de “UpdateOnClose”.
- This topic has 3 replies, 3 voices, and was last updated 1 year ago by robertogozzi.
-
-
12/03/2022 at 10:18 AM #205210
Bonjour,
J’ai un comportement non maitrisé de la fonction “UpdateOnClose”. Je dois sûrement mal l’utiliser.
Pour illustrer mon problème j’ai crée le petit algo suivant, utilisé dans l’UT 1mn. J’enregistre à chaque cassure de la SMA(7) la 5ème dernière bougie que je stocke dans un tableau.
Lorsque que je lance l’algo, tout se passe bien sur l’historique. Par contre sur les nouvelles bougies/nouveaux signaux, l’algo ne fonctionne plus. Il prend tous les signaux à l’intérieur d’une bougie et écrase ainsi toutes les valeurs stockées précédemment dans mon tableau.
La consigne “UpdateOnCLose” n’est pas respectée.
Est-ce dû au fait que l’UT dans lequel l’algo fonctionne et le TF déclaré dans l’algo sont les mêmes ? Autres idées?
J’ai une petite idée pour compenser (attendre la bougie suivante pour enregistrer) mais ce n’est pas très “propre” et ça fera perdre en réactivité.
J’ai ajouté un screen shot avec l’affichage des 3 dernières valeurs enregistrées dans le tableau. On voit clairement l’écrasement des valeurs après le lancement de l’algo.
Enregistrement des la 5ème dernière bougie à chaque cassure de SMA7123456789101112131415161718192021222324252627282930313233Timeframe(1 minute, UpdateOnclose)MM7=Average[7](close)ATR=AverageTrueRange[5](close)TailleTab=10//Nombre de points mémorisésIf close crosses over MM7 thenDrawArrowUp(barindex,Low-0.25*ATR)CoLoured(0, 255, 0)SignalMM=1Elsif close crosses under MM7 then//and second=59 thenDrawArrowDown(barindex,High+0.25*ATR)CoLoured(255,0, 0)SignalMM=-1EndifIf SignalMM<>SignalMM[1] thenLastY=Close[5] //Memorisation de la 5ème bougie précédenteLastX=Barindex[5]For k=1 to TailleTab do//décalage des valeurs dans le tableaui=TailleTab-k+1$Mem5x[i]=$Mem5xx[i-1]$Mem5y[i]=$Mem5y[i-1]Next$Mem5x[0]=LastX//Memorisation de la 5ème bougie dans le tableau$Mem5y[0]=LastYA1=$Mem5y[0]A2=$Mem5y[1]A3=$Mem5y[2]Drawtext("#A1#",barindex,high+0.5*ATR,Dialog,Bold,10)Coloured(55,0,0,255)Drawtext("#A2#",barindex,high+0.75*ATR,Dialog,Bold,10)Coloured(55,0,0,255)Drawtext("#A3#",barindex,high+1*ATR,Dialog,Bold,10)Coloured(55,0,0,255)EndifTimeframe(default, default)Return MM7 coloured (255,0,0), close coloured (204, 85, 0)12/03/2022 at 10:22 AM #20521112/06/2022 at 10:41 AM #205316Comme tu lances ton code sur l’unité de temps définit dans l’instruction TIMEFRAME, UpdateonClose ne changera pas le comportement en temps réel, c’est à dire qu’on attendra pas la clôture de la bougie pour récupérer des valeurs, lire ton code et donc changer les valeurs de ton tableau.
UpdateOnClose est utile pour récupérer l’info de la dernière période clôturée d’un timeframe supérieur.
12/06/2022 at 11:13 AM #205317 -
AuthorPosts
Find exclusive trading pro-tools on