Fin conditionnelle de tracé d’un rectangle Imbalance

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

    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
    Nicolas
    Keymaster
    Master

    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_I
    Participant
    New

    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
    Nicolas
    Keymaster
    Master

    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_I
    Participant
    New

    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
    Nicolas
    Keymaster
    Master

    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_I
    Participant
    New

    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
    Nicolas
    Keymaster
    Master

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

    #221112 quote
    Michel_I
    Participant
    New

    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
    Nicolas
    Keymaster
    Master

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

    #222105 quote
    larouedegann
    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
    Nicolas
    Keymaster
    Master

    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.

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 Nicolas
2 years, 4 months ago.

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