Fin conditionnelle de tracé d’un rectangle Imbalance

Viewing 12 posts - 1 through 12 (of 12 total)
  • Author
    Posts
  • #220627 quote
    Michel_IMichel_I
    Participant
    Junior

    Bonjour à tous ! Je cherche comment tracer l’arrêt du tracé d’un rectangle en fonction d’une condition précise.
    Exemple : je souhaite tracer un rectangle qui démarre sur le plus haut des 5 dernière bougies et se terminera uniquement lorsque ce plus haut sera dépassé par le plus haut d’une bougie suivante.
    et je sèche…

    merci de votre aide !

    michel

    #220722 quote
    NicolasNicolas
    Keymaster
    Legend

    Mais lorsqu’il est dépassé par le haut, alors la bougie courante devient le plus des 5 dernière bougies, donc le rectangle ne s’arrête pas ?!

    #220765 quote
    Michel_IMichel_I
    Participant
    Junior

    Bonjour, merci de votre réponse.
    Non, si le plus haut a été entré dans un tableau et devient une valeur fixe…

    je voudrais coder : «  le rectangle se termine sur une condition donnée »

    #220773 quote
    NicolasNicolas
    Keymaster
    Legend

    Dans ce cas il faut tracer dans le passé à chaque nouvelle bougie, avec les coordonnées pré enregistré. Faut-il le faire aussi dans tous l’historique ou uniquement sur la dernière détection de ce plus haut ?

    #221053 quote
    Michel_IMichel_I
    Participant
    Junior

    Je modifie et précise ma question :

    Je souhaite tracer un rectangle matérialisant les zones d’imbalance ICT.

    Simple à priori : la condition est :

    ImbalanceHaussiere = high[2] < low

    Je trace donc un rectangle avec le code :

    if ImbalanceHaussiere then

    $Tab[1] = low
    DRAWRECTANGLE(BARINDEX+10, low[0], BARINDEX[2], high[2]) coloured(0,250,255,30)BORDERCOLOR(100,255,250,250)
    endif

    Ici le rectangle durera 10 bougies après que la condition soit remplie (barindex + 10). Or, je souhaite que ce rectangle continue à se dessiner tant que le plus bas de la bougie courante ne passe pas sous le $Tab[1] (c’est à dire la valeur du bas du rectangle). Le rectangle se ferme donc quand ce seuil est atteint.

    Pour illustrer : sur l’image jointe, en 2 la fermeture du rectangle (Barindex + 10) et en 1 l’endroit où j’aimerais qu’il se ferme, le plus bas de la bougie étant inférieur au bas du rectangle…

    Merci de votre aide !

    Michel.

    imbalance-H.jpg imbalance-H.jpg
    #221080 quote
    NicolasNicolas
    Keymaster
    Legend

    Très bien, à vérifier, mais en partant du code de cet ancien post: https://www.prorealcode.com/topic/draw-resistance-line-until-it-is-broken-by-subsequent-price-action/#post-202702

    j’ai simplement modifier la condition avec celle que tu as donné, et changé les lignes par des rectangles, soit:

    defparam drawonlastbaronly=true
    
    REM Store support
    IF high[2] < low THEN
    $support[i]=low
    $support1[i]=high[2]
    $bar[i]=barindex
    $bar1[i]=barindex[2]
    i=i+1
    ENDIF
    
    REM check support line
    if islastbarupdate and i>1 then
    for j = 0 to i-1
    checklow = $support[j]
    bars = max(1,barindex-$bar[j])
    endbar=barindex
    for z = 1 to bars
    if low[z]<checklow then
    endbar=barindex[z]
    endif
    next
    if endbar<barindex then
    //drawsegment($bar[j],$support[j],endbar,$support[j]) coloured(0,255,0)
    drawrectangle($bar1[j],$support1[j],endbar,$support[j]) coloured(0,255,0,50) bordercolor(0,0,0,0)
    else
    //drawray($bar[j],$support[j],barindex+1,$support[j]) coloured(0,255,0)
    drawrectangle($bar1[j],$support1[j],barindex,$support[j]) coloured(0,255,0,50) bordercolor(0,0,0,0)
    endif
    next
    endif
    
    
    RETURN
    imbalance-support-prorealtime.png imbalance-support-prorealtime.png
    #221109 quote
    Michel_IMichel_I
    Participant
    Junior

    Bonjour et merci de ta réponse, Nicolas !

    Il y a bien des rectangles tracés, mais il ne correspondent pas vraiment aux zones d’imbalance. Le code est très complexe pour moi, et je n’arrive pas à voir ce qu’il faudrait modifier…

    Sur l’image ci jointe, on voit en vert les rectangles qui sont tracés par le code, et en bleu ce que je voudrais qu’il trace …

    Il y a un décalage, surement dû aux paramétrage de la fonction drawrectangle …

    Capture-imbalance-2.jpg Capture-imbalance-2.jpg
    #221111 quote
    NicolasNicolas
    Keymaster
    Legend

    J’ai corrigé le code ci-dessus, est-ce que c’est mieux ?

    #221112 quote
    Michel_IMichel_I
    Participant
    Junior

    En tâtonnant, j’ai réussi à trouver ce qui ne fonctionnait pas bien !

    Voici le code modifié :

    defparam drawonlastbaronly=true

    REM Measure the length of real body, lower shadow, and upper shadow for white and black candles
    IF OPEN < CLOSE THEN REM white candle
    realbody = CLOSE - OPEN
    lowershadow = OPEN - LOW
    uppershadow = HIGH - CLOSE
    ELSIF OPEN > CLOSE THEN REM black candle
    realbody = OPEN - CLOSE
    lowershadow = CLOSE - LOW
    uppershadow = HIGH - OPEN
    ENDIF
    
    REM Store support
    IF high[2] < low THEN
    $support[i]= high[2]                              //modifié, ancien = low
    $bar[i]=barindex
    i=i+1
    ENDIF
    
    REM check support line
    if islastbarupdate and i>1 then
    for j = 0 to i-1
    checklow = $support[j]
    bars = max(1,barindex-$bar[j])
    endbar=barindex
    for z = 1 to bars
    if low[z]<checklow then
    endbar=barindex[z]
    endif
    next
    if endbar<barindex then
    //drawsegment($bar[j],$support[j],endbar,$support[j]) coloured(0,255,0)
    //drawrectangle($bar[j],high[max(0,barindex-$bar[j])],endbar,$support[j]) coloured(0,255,0,50) bordercolor(0,0,0,0)             // ancien
    drawrectangle($bar[j]-2,low[max(0,barindex-$bar[j])],endbar,$support[j]) coloured(0,255,0,50) bordercolor(0,0,0,0)              // modifié
    else
    //drawray($bar[j],$support[j],barindex+1,$support[j]) coloured(0,255,0)
    drawrectangle($bar[j]-2,low[max(0,barindex-$bar[j])],barindex,$support[j]) coloured(0,255,0,50) bordercolor(0,0,0,0)
    endif
    next
    endif
    
    RETURN
    #221116 quote
    NicolasNicolas
    Keymaster
    Legend

    A noter que les lignes 1 à 10 ne sont pas utiles, elles appartiennent à l’ancien code.

    #222105 quote
    larouedegannlarouedegann
    Participant
    Master

    A noter que le code ne trace que des imbalances inférieures : high[2]<low.

    Il existe aussi des imbalances supérieures : high<low[2]

    A compléter

    #222335 quote
    NicolasNicolas
    Keymaster
    Legend

    Voir cet indicateur plus complet : Imbalances indicator

    isssu de cette conversation: IMBALANCE projections rectangulaires

Viewing 12 posts - 1 through 12 (of 12 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

Fin conditionnelle de tracé d’un rectangle Imbalance


ProBuilder : Indicateurs & Outils Personnalisés

New Reply
Author
author-avatar
Michel_I @michel_i Participant
Summary

This topic contains 11 replies,
has 3 voices, and was last updated by NicolasNicolas
3 years ago.

Topic Details
Forum: ProBuilder : Indicateurs & Outils Personnalisés
Language: French
Started: 09/09/2023
Status: Active
Attachments: 3 files
ProRealCode ProRealCode
Loading...