Fin conditionnelle de tracé d’un rectangle Imbalance
Forums › ProRealTime forum Français › Support ProBuilder › Fin conditionnelle de tracé d’un rectangle Imbalance
- This topic has 11 replies, 3 voices, and was last updated 1 year ago by Nicolas.
-
-
09/09/2023 at 6:24 PM #220627
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
09/11/2023 at 12:39 PM #22072209/11/2023 at 3:12 PM #22076509/11/2023 at 4:22 PM #22077309/14/2023 at 7:02 PM #221053Je 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)
endifIci 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.
09/15/2023 at 9:45 AM #221080Trè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:
12345678910111213141516171819202122232425262728293031323334defparam drawonlastbaronly=trueREM Store supportIF high[2] < low THEN$support[i]=low$support1[i]=high[2]$bar[i]=barindex$bar1[i]=barindex[2]i=i+1ENDIFREM check support lineif islastbarupdate and i>1 thenfor j = 0 to i-1checklow = $support[j]bars = max(1,barindex-$bar[j])endbar=barindexfor z = 1 to barsif low[z]<checklow thenendbar=barindex[z]endifnextif 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)endifnextendifRETURN09/15/2023 at 1:23 PM #221109Bonjour 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 …
09/15/2023 at 1:46 PM #22111109/15/2023 at 2:13 PM #221112En tâtonnant, j’ai réussi à trouver ce qui ne fonctionnait pas bien !
Voici le code modifié :
defparam drawonlastbaronly=true
1234567891011121314151617181920212223242526272829303132333435363738394041REM Measure the length of real body, lower shadow, and upper shadow for white and black candlesIF OPEN < CLOSE THEN REM white candlerealbody = CLOSE - OPENlowershadow = OPEN - LOWuppershadow = HIGH - CLOSEELSIF OPEN > CLOSE THEN REM black candlerealbody = OPEN - CLOSElowershadow = CLOSE - LOWuppershadow = HIGH - OPENENDIFREM Store supportIF high[2] < low THEN$support[i]= high[2] //modifié, ancien = low$bar[i]=barindexi=i+1ENDIFREM check support lineif islastbarupdate and i>1 thenfor j = 0 to i-1checklow = $support[j]bars = max(1,barindex-$bar[j])endbar=barindexfor z = 1 to barsif low[z]<checklow thenendbar=barindex[z]endifnextif 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) // anciendrawrectangle($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)endifnextendifRETURN09/15/2023 at 3:18 PM #22111610/06/2023 at 4:23 PM #222105A 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
10/12/2023 at 10:26 AM #222335Voir cet indicateur plus complet : Imbalances indicator
isssu de cette conversation: IMBALANCE projections rectangulaires
-
AuthorPosts
Find exclusive trading pro-tools on