Type entier positif – erreur de calcul

Forums ProRealTime forum Français Support ProBuilder Type entier positif – erreur de calcul

Viewing 7 posts - 1 through 7 (of 7 total)
  • #223560

    Bonjour,

    Je débute, voici un bout de code pour rechercher et afficher le plus hauts des plus haut des 500 dernières bougies……

    l’erreur de calcul suivante est renvoyée :       un paramètre de type entier positif est attendu avec highest

    je tourne en rond , le prix est souvent decimal…….un peu d’aide svp.

    Merci

     

    #223566

    Bonjour,

    La syntaxe attendue serait plutôt:

    a=highest[500](high)

    https://www.prorealcode.com/documentation/highest/

     

    #223574

    Bonjour,

    Merci,

    oups, l’erreur se voit comme le nez sur la figure

    c’est peut-être le propre des débutants

    maintenant, je vais essayer de récupérer l’index de la barre concernée…….

    Bon dimanche

     

     

     

    #223577

    Pour cela, tu peux passer par l’instruction barssince, en recherchant la fois la plus récente où high valait ce highest, cela donne le nombre de barres écoulées depuis l’événement.

    https://www.prorealcode.com/documentation/barssince/

    Pour le convertir ensuite en barindex, il suffit de déduire ce nombre du barindex:

    a=highest[500](high)

    b=barindex-BarsSince(high=a)

    return b, barindex

    #223628

    Re,

    Merci pour le code qui me cause un petit souci:

    a=highest[500](high)

    b=barindex-BarsSince(high=a)

    return b, barindex

    b=barindex-BarsSince(high=a)   compte les bars de la droite vers la gauche après le highest (51 eme bar), donc renvoie  pour mon cas 646  entier positif (l’histo total compte 697 bars )

    par contre  b= BarsSince(high=a)  renvoie le bon compte >51 mais c’est un entier négatif car si j’affecte la variable b à barindex[b]   j’ai la même erreur de calcul   >un paramètre de type entier positif est attendu avec b

    Tout celà m’a permis de découvrir que barindex vaut 697…….

    donc j’ai testé  b= barindex-(barindex-BarsSince(high=a)) qui vaut >51  mais un entier négatif qui génère la même erreur…….

    Bizarre……

    Bonne soirée

     

    #223632

    Bonsoir, dans le lien fourni pour barssince, il est précisé:

    “If no value, it will return the value -1.”

    Ce qui sera le cas sur autant de bougies qu’il en faudra en début d’historique avant d’avoir la première occurrence d’un high=a.

    Pour éviter toute confusion entre les 2 formules différentes pour b, je vais garder b pour b=barindex-BarsSince(high=a) 

    et utiliserc pour  c= BarsSince(high=a)

    En soi ce n’est pas gênant pour c seul de valoir -1 sur des bougies en début d’historique avant de devenir positif ou nul, mais ça le devient si on veut utiliser c entre crochets dans barindex[c] pendant que c=-1 sur le début d’historique.

    Il faut donc encadrer le code créé utilisant c entre crochets par un if testant si c est positif ou nul:

    if c>=0 then

    blablacode d’une ou plusieurs lignes utilisant [c]

    endif

    1 user thanked author for this post.
    #223636

    ah, voilà….je comprends

    barssince( ) renvoi -1 jusqu’à ce qu’il trouve une valeur ,  a  dans mon exemple.

    Donc le code s’arrête à la première barre testée car il lit un entier négatif…..donc la variable entre crochet vaut -1 qui n’est pas accepté et génère l’erreur.

    maintenant ça fonctionne….

    Cent fois merci.

Viewing 7 posts - 1 through 7 (of 7 total)

Create your free account now and post your request to benefit from the help of the community
Register or Login