Anomalie dans un indicateur

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
    Posts
  • #202570 quote
    BenCDBenCD
    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
    robertogozzirobertogozzi
    Moderator
    Legend

    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
    BenCDBenCD
    Participant
    Average

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

    #202576 quote
    fifi743fifi743
    Participant
    Master

    et en changeant le break ,

    le mettre au dessus else

    #202577 quote
    BenCDBenCD
    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_BywanJC_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
    BenCDBenCD
    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.
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

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 BenCDBenCD
3 years, 11 months ago.

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