variable globale ?

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #237082 quote
    Pierre Polaris
    Participant
    New

    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

    #237084 quote
    JC_Bywan
    Moderator
    Master

    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

    #237090 quote
    Pierre Polaris
    Participant
    New

    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

    #237093 quote
    JC_Bywan
    Moderator
    Master

    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

    Pierre Polaris and Iván González thanked this post
    #237096 quote
    Pierre Polaris
    Participant
    New

    MANY THX !

Viewing 5 posts - 1 through 5 (of 5 total)
  • You must be logged in to reply to this topic.

variable globale ?


Support Plateforme : Graphiques, Données & Courtiers

New Reply
Author
Summary

This topic contains 4 replies,
has 2 voices, and was last updated by Pierre Polaris
1 year, 5 months ago.

Topic Details
Forum: Support Plateforme : Graphiques, Données & Courtiers
Language: French
Started: 09/04/2024
Status: Active
Attachments: No files
Logo Logo
Loading...