signification "initial" sur ancienne version
Forums › ProRealTime forum Français › Support ProBuilder › signification "initial" sur ancienne version
- This topic has 4 replies, 2 voices, and was last updated 7 years ago by manoit.
-
-
01/13/2017 at 9:38 AM #20971
Bonjour,
La constante initial (manifestement du même ordre que low, close, etc…) présente dans un indicateur codé dans une précédente version de Probuilder m’est inconnue. Bien entendu, le code ne fonctionne plus.
Y a t-il un équivalent dans le langage actuel? ou bien si je pouvais connaître sa signification pour pouvoir le programmer
Merci par avance
01/13/2017 at 1:49 PM #21000Sauf erreur de ma part, l’instruction ou constante “initial” n’a jamais été utilisé dans le langage de programmation de ProRealTime. Il peut s’agir d’une erreur de copier/coller ou d’une ligne de commentaire qui a été dé-commenté ?
Avec une vision du code, on pourra sans doute dépanner ce problème sans soucis 🙂
01/13/2017 at 3:21 PM #21007123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475if barindex = 0 thenislong = 1reverse = 0af = initialhighvalue = highlowvalue = lowprevhighvalue = highprevlowvalue = lowmysar = lowvalueelsehighvalue = max(highvalue, high[1])lowvalue = min(lowvalue, low[1])if islong thenif low[1] < mysar then reverse = 1 islong = 0 endif else if high[1] > mysar thenreverse = 1islong = 1endifendifif islong thenif reverse thenmysar = lowvalueaf = 0.02lowvalue = low[1]highvalue = high[1]elseif (highvalue > prevhighvalue and af < 0.2) then af = af + min(0.02, (0.2-af)) endif mysar = mysar + af * (highvalue - mysar) mysar = min(mysar, low[1]) if (barindex > 1) thenmysar = min(mysar, low[2])endifendifelseif reverse thenmysar = highvalueaf = 0.02lowvalue = low[1]highvalue = high[1]elseif (lowvalue < prevlowvalue and af < 0.2) then af = af + min(0.02, (0.2-af)) endif mysar = mysar + af * (lowvalue - mysar) mysar = max(mysar, high[1]) if (barindex > 1) thenmysar = max(mysar, high[2])endifendifendifprevhighvalue = highvalueprevlowvalue = lowvaluereverse = 0REM anticipation du prochain coursnewhighvalue = max(highvalue, high)newlowvalue = min(lowvalue, low)if islong thenif low < mysar then newmysar = highvalue else if (newhighvalue > prevhighvalue and af < 0.2) then newaf = af + min(0.02, (0.2-af)) else newaf = af endif newmysar = mysar + newaf * (newhighvalue - mysar) newmysar = min(newmysar, low) newmysar = min(newmysar, low[1]) endif else if high > mysar thennewmysar = lowvalueelseif (newlowvalue < prevlowvalue and af < 0.2) thennewaf = af + min(0.02, (0.2-af))elsenewaf = afendifnewmysar = mysar + newaf * (newlowvalue - mysar)newmysar = max(newmysar, high)newmysar = max(newmysar, high[1])endifendifendifreturn newmysarMerci pour la réponse, alors je ne comprends plus…il ne peut s’agir d’un commentaire, mais bien d’une définition de variable…
Il n’y a eu aucun effacement…
Merci par avance.
01/13/2017 at 3:37 PM #21008“initial” devait être une variable externe à renseigner avec une valeur quelconque, je lui ai ici affecté la valeur 0.02.
J’ai revu un peu le code et ça fonctionne désormais, voici le code corrigé ci-dessous et un exemple du rendu à l’écran. Cela ressemble à ce que tu souhaitais obtenir ?
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899once islong = 1once reverse = 0once af = 0.02//initialonce highvalue = highonce lowvalue = lowonce prevhighvalue = highonce prevlowvalue = lowonce mysar = lowvalueif barindex>10 thenhighvalue = max(highvalue, high[1])lowvalue = min(lowvalue, low[1])if islong thenif low[1] < mysar thenreverse = 1islong = 0endifelseif high[1] > mysar thenreverse = 1islong = 1endifendifif islong thenif reverse thenmysar = lowvalueaf = 0.02lowvalue = low[1]highvalue = high[1]elseif (highvalue > prevhighvalue and af < 0.2) thenaf = af + min(0.02, (0.2-af))endifmysar = mysar + af * (highvalue - mysar)mysar = min(mysar, low[1])if (barindex > 1) thenmysar = min(mysar, low[2])endifendifelseif reverse thenmysar = highvalueaf = 0.02lowvalue = low[1]highvalue = high[1]elseif (lowvalue < prevlowvalue and af < 0.2) thenaf = af + min(0.02, (0.2-af))endifmysar = mysar + af * (lowvalue - mysar)mysar = max(mysar, high[1])if (barindex > 1) thenmysar = max(mysar, high[2])endifendifendifprevhighvalue = highvalueprevlowvalue = lowvaluereverse = 0REM anticipation du prochain coursnewhighvalue = max(highvalue, high)newlowvalue = min(lowvalue, low)if islong thenif low < mysar thennewmysar = highvalueelseif (newhighvalue > prevhighvalue and af < 0.2) thennewaf = af + min(0.02, (0.2-af))elsenewaf = afendifnewmysar = mysar + newaf * (newhighvalue - mysar)newmysar = min(newmysar, low)newmysar = min(newmysar, low[1])endifelseif high > mysar thennewmysar = lowvalueelseif (newlowvalue < prevlowvalue and af < 0.2) thennewaf = af + min(0.02, (0.2-af))elsenewaf = afendifnewmysar = mysar + newaf * (newlowvalue - mysar)newmysar = max(newmysar, high)newmysar = max(newmysar, high[1])endifendifendifreturn newmysar01/13/2017 at 3:44 PM #21012Merci beaucoup!je ne pourrai le tester que la semaine prochaine. mais ça semble OK et …mieux (je n’étais pas l’auteur)!ravi d’avoir découvert tes compétences! Je n’en abuserai pas, mais c’est un filet de sécurité très appréciable lorsque je “sèche”.Bien cordialement -
AuthorPosts