Anomalie dans un indicateur

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
    Posts
  • #202570 quote
    BenCD
    Participant
    Average

    Bonjour à tous,

    J’ai créé un petit indicateur tout simple, mais il m’affiche des ‘anomalies’ que je n’arrive pas à comprendre, c’est peut être sous mes yeux, mais je ne vois rien!

    Voici le code :

    defparam drawonlastbaronly = true

    if islastbarupdate then
    for i = 50 downto 0 do
    for j = i-1 downto 0 do
    if High[i] > Highest[max(j,1)](High) then
    drawray (Barindex[i], High[i], Barindex, High[i])
    else
    break
    endif
    next
    next
    endif

    return

    Et voici les anomalies que je rencontre, sur le S&P en 5min :

    Le High n’est pas plus grand que le plus grand des Highs sur sa droite,

    Quelqu’un a t il une idée?

    Merci à tous!

    Capture-decran-2022-10-14-a-18.25.42.png Capture-decran-2022-10-14-a-18.25.42.png
    #202572 quote
    robertogozzi
    Moderator
    Master

    Veuillez ne pas inclure de photos ou de documents dans le message. Utilisez le bouton "Sélectionner un fichier" pour les joindre. Merci 🙂

    #202574 quote
    BenCD
    Participant
    Average

    Désolé Roberto! Je le saurai pour la prochaine fois! Merci!

    #202576 quote
    fifi743
    Participant
    Master

    et en changeant le break ,

    le mettre au dessus else

    #202577 quote
    BenCD
    Participant
    Average

    Cela change complètement les résultats 🙁

    Capture-decran-2022-10-14-a-19.18.47.png Capture-decran-2022-10-14-a-19.18.47.png
    #202580 quote
    JC_Bywan
    Moderator
    Master

    Bonsoir,

    à vue d’oeil ça serait parce que la bougie immédiatement à droite d’une bougie “i” n’est pas prise en compte dans ton highest, vu que le nombre entre crochets du highest n’est pas un rang, mais un nombre incluant la bougie actuelle de rang 0.

    Exemple: i=3, ton highest[j]() sera au plus highest[i-1](), c’est à dire highest[2](), donc un highest parmi rang 0 et rang 1, tu n’as pas inclus le rang 2 avec cette formulation. Donc j devrait partir de i plutôt que i-1

    D’autre part, même si ce n’est pas lié à l’anomalie directement, je ne vois pas trop pourquoi tu fais cette autre boucle sur j (à moins qu’elle serve dans un autre bout de code non montré). Ne pas faire de boucle sur j, et juste faire “if high[i] > highest[i](high) then” devrait te donner tes drawray sans aussi regarder highest[i-1], highest [i-2], etc… non?

    defparam drawonlastbaronly = true
    
    if islastbarupdate then
     for i = 50 downto 0 do
      if High[i] > Highest[max(i,1)](High) then
       drawray (Barindex[i], High[i], Barindex, High[i])
      endif
     next
    endif
    
    return
    BenCD thanked this post
    #202583 quote
    BenCD
    Participant
    Average

    Ah oui parfait JC cela fonctionne! 🙂

    J’étais parti dans une mauvaise direction en faisant une “double boucle”.
    Pour chaque bougie ‘i’ je testais les bougies à sa droite donc nouvelle boucle ‘j’.

    Après ton explication, je réalise que cela n’était pas très malin!

    Merci pour ton aide rapide et précieuse.

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

Anomalie dans un indicateur


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
BenCD @bencd Participant
Summary

This topic contains 6 replies,
has 4 voices, and was last updated by BenCD
3 years, 5 months ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 10/14/2022
Status: Active
Attachments: 2 files
Logo Logo
Loading...