fonctionnement pointeur d’instructions

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #232926 quote
    RICO74320RICO74320
    Participant
    New

    Bonjour, Voici un 1 er programme :

    defparam CALCULATEONLASTBARS=10
    
    print(barIndex)
    //x = x + 2
    if barindex >=1 then
    x=x[1]+100
    endif
    x = x + 2
    print(x)
    
    return

    Dans celui-ci, les valeurs de x sont les suivantes : 102, 204, 306, … 1020 : c’est à dire l’ancienne valeur de x auquel on ajoute 2.

    Voici un autre code, où l’instruction x = x +2 est placée avant le IF :

    defparam CALCULATEONLASTBARS=10
    
    print(barIndex)
    x = x + 2
    if barindex >=1 then
    x=x[1]+100
    endif
    //x = x + 2
    print(x)
    
    return

    dans celui-ci les valeurs de x sont : 100, 200, 300, 400 … 1000. Comme si l’instruction x = x +2 était ignorée. pourtant dans les 2 cas, l’instruction print(barIndex) est effectuée.

    Si quelqu’un pouvait expliquer cette différence …

    Merci à vous.

    #232938 quote
    drubydruby
    Participant
    New

    Salut… Dans un graphique, il y a environ 500 barres chargées par défaut.

    Dans vos programmes, vous avez CALCULATEONLASTBARS=10.

    Par conséquent, les calculs commenceront à barindex ~490.

    La condition IF est vraie et exécute le code et, calcule X cependant, elle utilise X[1], la barre X précédente qui était avant le début des calculs, donc sera par défaut à 0.

    Donc, dans le programme 1, X = 100 puis +2 =102.

    Dans le programme 2, X=2 avant le bloc IF, mais ensuite vous l’écrasez avec le IF  X    avec X[1] est à nouveau 0 + 100 = 100 par défaut.

    En continuant, program1 ajoute le 2 à X, mais le programme 2 écrase X quand c’est 2, donc jamais ajouté. Changer X[1] en X[0] ou simplement X donne le même résultat que le programme 1.

    druby

    robertogozzi thanked this post
    #232939 quote
    drubydruby
    Participant
    New

    De plus, X[1] sera zéro par défaut lorsqu’il sera récupéré à partir de barindex 489.

    #232942 quote
    drubydruby
    Participant
    New

    Mettez X dans une autre variable Y pour PRINT() X avant et après.

    Screenshot-2024-05-22-183217.png Screenshot-2024-05-22-183217.png
    #232949 quote
    RICO74320RICO74320
    Participant
    New

    En effet x est bien redéfini dans le bloc IF. Tout est clair !

    Un grand merci pour le temps passé.

    Bonne journée.

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

Stuck on this ProBuilder code?

Describe what this topic is trying to build, in plain English, and ProRealAI writes the ProRealTime™ indicator, screener or system for you.

Available in 7 languages
Try ProRealAI

fonctionnement pointeur d’instructions


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
RICO74320 @rico74320 Participant
Summary

This topic contains 4 replies,
has 2 voices, and was last updated by RICO74320RICO74320
2 years, 3 months ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 05/22/2024
Status: Active
Attachments: 1 files
ProRealCode ProRealCode
Loading...