Bjr, Dans probuilder, comment créer une variable globale qui puisse conserver une valeur pour être utilisée sur la boucle de calcul suivante (jour suivant) ? j’ai trouvé la fonction DEFPARAM à mettre et initiée en début de code, mais si je mets DEFPARAM toto=1000 ça marche pas (“commande inconnue” avec un triangle jaune…).
merci pour votre aide
Bonjour,
Le code est lu à chaque bougie de l’historique, et en live il est même lu à chaque nouveau tick dans le cas d’un indicateur (mais pas d’une stratégie auto) et garde en mémoire la valeur d’une variable de la fin d’une bougie vers le début de la suivante (jour suivant si en ut jour, heure suivante si en UTH etc…), sans rien préciser d’autre, donc tout simplement : toto=1000
Attention, si la variable toto est ensuite modifiée par une formule plus loin dans le code, alors c’est la dernière valeur obtenue qui est retenue en début de relecture du code en bougie suivante, jusqu’à éventuellement retomber sur la ligne toto=1000
Le forum regorge d’exemples de code pour se familiariser avec probuilder:
Support ProBuilder
Bienvenue, et bonne continuation
Merci pour votre aide. le problème dans le programme ci-dessous:
a=fonction….
IF a<aprecedent THEN
a=aprecedent
ELSE
a=0
ENDIF
//aprecedent=a
return a
est bien sûr l’initialisation de aprecedent, sachant que si je mets aprecedent=a[1] ça marche pas
Ok, dans ce cas, le a précédent est bien a[1], mais on ne peut pas parler de a[1] à la toute première bougie (le barindex=0) car a[1] n’y est pas défini, et la non-définition va se propager d’une bougie à l’autre, donc on ne relie a à a[1] qu’à partir de la 2e bougie (le barindex=1), par exemple comme ceci:
a=fonction… (si la fonction ne dépend pas de valeur de a antérieure)
if barindex>=1 then
if a<a[1] then
a=a[1]
else
a=0
endif
endif
return a