Optimisation affichage des ranges
Forums › ProRealTime forum Français › Support ProBuilder › Optimisation affichage des ranges
- This topic has 11 replies, 3 voices, and was last updated 20 hours ago by
AdilMed10.
-
-
12/08/2025 at 9:52 PM #254369
Bonjour,
J’utilise un indicateur de détection de range/inside bars inspiré de celui posté par @LucasBest que je trouve top, mais je voudrais l’optimiser pour qu’il soit plus lisible pour mon utilisation.
Actuellement, il affiche tous les ranges détectés, et ça surcharge énormément mon graphique.
Je cherche à n’afficher que deux ranges maximum à la fois :
-
Le range actuel en formation (en violet).
-
Le dernier range qui a été cassé (qui devient vert).
Dès qu’un nouveau range violet est cassé, il prend la place de l’ancien vert, et on attend le nouveau violet. L’idée est de n’avoir qu’un seul vert (le dernier cassé) et un seul violet (l’actuel).
Merci beaucoup pour votre aide ! 🙏
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123DefParam DrawOnLastBarOnly = trueonce candleLow = lowonce candleHigh = highonce candleOpen = openonce candleClose = closeonce insideCandles = 1once RangeIndex = 0MyTR = max(Range, max(abs(high - close[1]), abs(low - close[1])))if high > candleHigh[1] and close <= candleHigh[1] thencandleHigh = highendifif low < candleLow[1] and close >= candleLow[1] thencandleLow = lowendifbreakoutCandle = close > candleHigh or close < candleLowbullishBreak = close > candleHigh[1] and insideCandles[1] >= (minLemgth+1)bearishBreak = close < candleLow[1] and insideCandles[1] >= (minLemgth+1)candleMiddle = (candleHigh + candleLow)/2FiltreBreakoutCandle1 = (Average[2](MyTR[0]) > F*Average[20](MyTR[1]) and breakindex >= barindex-1)FiltreBreakoutCandle2 = 0FiltreBreakoutCandle3 = 0If insideCandles >= 3 thenupside = insideCandles>=3 and summation[ceil((insideCandles+1)/2)](close>=candleMiddle) = ceil((insideCandles+1)/2)downside = insideCandles>=3 and summation[ceil((insideCandles+1)/2)](close<=candleMiddle) = ceil((insideCandles+1)/2)FiltreBreakoutCandle2 = upside or downsideFiltreBreakoutCandle3 = (close >= candleHigh[2] or close <= candleLow[2]) and insideCandles>=2endifif breakoutCandle or (filtre and ((FilteringMethod=1 and FiltreBreakoutCandle1) or (FilteringMethod=2 and FiltreBreakoutCandle2) or (FilteringMethod=3 and FiltreBreakoutCandle3))) thenIf not breakoutCandle and (filtre and FilteringMethod=2 and FiltreBreakoutCandle2) thenif upside thencandleLow = lowest[ceil((insideCandles+1)/2)](low)candleHigh = candleHighcandleOpen = opencandleClose = closeinsideCandles = 1breakindex = barindexelsif downside thencandleLow = candleLowcandleHigh = highest[ceil((insideCandles+1)/2)](high)candleOpen = opencandleClose = closeinsideCandles = 1breakindex = barindexendifelsecandleLow = lowcandleHigh = highcandleOpen = opencandleClose = closeinsideCandles = 1breakindex = barindexendifIf insideCandles[1] >= (minLemgth) and insideCandles = 1 thenIf close > candleHigh[1] thenDrawarrowup(Barindex, Low)Elsif close < candleLow[1] thenDrawarrowdown(Barindex, High)EndifEndifelseinsideCandles = insideCandles + 1if insideCandles >= (minLemgth) thenIf $RangeStart[RangeIndex] = breakindex then$RangeLength[RangeIndex] = insideCandles$RangeHigh[RangeIndex] = candleHigh$RangeLow[RangeIndex] = candleLowElseRangeIndex = RangeIndex + 1$RangeStart[RangeIndex] = breakindex$RangeLength[RangeIndex] = insideCandles$RangeHigh[RangeIndex] = candleHigh$RangeLow[RangeIndex] = candleLowEndif// Dernier rectangle (violet)drawsegment(breakindex, candleHigh, barindex+1, candleHigh) style(dottedline1,3) coloured(255,79,255,255)drawsegment(breakindex, candleLow, barindex+1, candleLow) style(dottedline1,3) coloured(255,79,255,255)DRAWRECTANGLE(breakindex, candleHigh, barindex+1, candleLow) coloured(255,79,255,20) bordercolor(255,79,255,200)drawsegment(breakindex, (candleHigh+candleLow)/2, barindex+1, (candleHigh+candleLow)/2) style(dottedline1,3) coloured(255,79,255,255)endifendifFin = Max(0, RangeIndex - ($RangeStart[RangeIndex] = breakindex))If OnlyLastRange > 0 thenDebut = Max(0, Fin - OnlyLastRange + 1 + ($RangeStart[RangeIndex] = breakindex))ElseDebut = 0EndifIf RangeIndex > 1 thenFor i = Debut to Fin do// Précédents rectangles (vert/jaune)drawsegment($RangeStart[i], $RangeHigh[i], $RangeStart[i]+$RangeLength[i], $RangeHigh[i]) style(line,3) coloured(198,255,0,255)drawsegment($RangeStart[i], $RangeLow[i], $RangeStart[i]+$RangeLength[i], $RangeLow[i]) style(line,3) coloured(198,255,0,255)DRAWRECTANGLE($RangeStart[i], $RangeHigh[i], $RangeStart[i]+$RangeLength[i], $RangeLow[i]) coloured(198,255,0,20) bordercolor(198,255,0,200)drawsegment($RangeStart[i], ($RangeHigh[i]+$RangeLow[i])/2, $RangeStart[i]+$RangeLength[i], ($RangeHigh[i]+$RangeLow[i])/2) style(dottedline1,3) coloured(198,255,0,255)NextEndifreturn12/09/2025 at 12:33 AM #254374A Tester123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135DefParam DrawOnLastBarOnly = true//Paramètres à mettre en commentaire (car déjà définis dans la configuration)once f=0once filteringmethod = 1once filtre = 0once minLemgth = 15//once candleLow = lowonce candleHigh = highonce candleOpen = openonce candleClose = closeonce insideCandles = 1once RangeIndex = 0MyTR = max(Range, max(abs(high - close[1]), abs(low - close[1])))if high > candleHigh[1] and close <= candleHigh[1] thencandleHigh = highendifif low < candleLow[1] and close >= candleLow[1] thencandleLow = lowendifbreakoutCandle = close > candleHigh or close < candleLowbullishBreak = close > candleHigh[1] and insideCandles[1] >= (minLemgth+1)bearishBreak = close < candleLow[1] and insideCandles[1] >= (minLemgth+1)candleMiddle = (candleHigh + candleLow)/2FiltreBreakoutCandle1 = (Average[2](MyTR[0]) > F*Average[20](MyTR[1]) and breakindex >= barindex-1)FiltreBreakoutCandle2 = 0FiltreBreakoutCandle3 = 0If insideCandles >= 3 thenupside = insideCandles>=3 and summation[ceil((insideCandles+1)/2)](close>=candleMiddle) = ceil((insideCandles+1)/2)downside = insideCandles>=3 and summation[ceil((insideCandles+1)/2)](close<=candleMiddle) = ceil((insideCandles+1)/2)FiltreBreakoutCandle2 = upside or downsideFiltreBreakoutCandle3 = (close >= candleHigh[2] or close <= candleLow[2]) and insideCandles>=2endifif breakoutCandle or (filtre and ((FilteringMethod=1 and FiltreBreakoutCandle1) or (FilteringMethod=2 and FiltreBreakoutCandle2) or (FilteringMethod=3 and FiltreBreakoutCandle3))) thenIf not breakoutCandle and (filtre and FilteringMethod=2 and FiltreBreakoutCandle2) thenif upside thencandleLow = lowest[ceil((insideCandles+1)/2)](low)candleHigh = candleHighcandleOpen = opencandleClose = closeinsideCandles = 1breakindex = barindexelsif downside thencandleLow = candleLowcandleHigh = highest[ceil((insideCandles+1)/2)](high)candleOpen = opencandleClose = closeinsideCandles = 1breakindex = barindexendifelsecandleLow = lowcandleHigh = highcandleOpen = opencandleClose = closeinsideCandles = 1breakindex = barindexendifIf insideCandles[1] >= (minLemgth) and insideCandles = 1 thenIf close > candleHigh[1] thenDrawarrowup(Barindex, Low)Elsif close < candleLow[1] thenDrawarrowdown(Barindex, High)EndifEndifelseinsideCandles = insideCandles + 1if insideCandles >= (minLemgth) thenOnlyLastRange = 2 //Pour afficher le range en cours et celui d'avantIf $RangeStart[RangeIndex] = breakindex then$RangeLength[RangeIndex] = insideCandles$RangeHigh[RangeIndex] = candleHigh$RangeLow[RangeIndex] = candleLowElseRangeIndex = RangeIndex + 1$RangeStart[RangeIndex] = breakindex$RangeLength[RangeIndex] = insideCandles$RangeHigh[RangeIndex] = candleHigh$RangeLow[RangeIndex] = candleLowEndif// Dernier rectangle (violet)drawsegment(breakindex, candleHigh, barindex+1, candleHigh) style(dottedline1,3) coloured(255,79,255,255)drawsegment(breakindex, candleLow, barindex+1, candleLow) style(dottedline1,3) coloured(255,79,255,255)DRAWRECTANGLE(breakindex, candleHigh, barindex+1, candleLow) coloured(255,79,255,20) bordercolor(255,79,255,200)drawsegment(breakindex, (candleHigh+candleLow)/2, barindex+1, (candleHigh+candleLow)/2) style(dottedline1,3) coloured(255,79,255,255)elseOnlyLastRange = 1 //Pour afficher le range en cours et celui d'avantendifendifFin = Max(0, RangeIndex - ($RangeStart[RangeIndex] = breakindex))If OnlyLastRange > 0 thenDebut = Max(0, Fin - OnlyLastRange + 1 + ($RangeStart[RangeIndex] = breakindex))ElseDebut = 0EndifIf RangeIndex > 1 thenFor i = Debut to Fin do// Précédents rectangles (vert/jaune)drawsegment($RangeStart[i], $RangeHigh[i], $RangeStart[i]+$RangeLength[i], $RangeHigh[i]) style(line,3) coloured(198,255,0,255)drawsegment($RangeStart[i], $RangeLow[i], $RangeStart[i]+$RangeLength[i], $RangeLow[i]) style(line,3) coloured(198,255,0,255)DRAWRECTANGLE($RangeStart[i], $RangeHigh[i], $RangeStart[i]+$RangeLength[i], $RangeLow[i]) coloured(198,255,0,20) bordercolor(198,255,0,200)drawsegment($RangeStart[i], ($RangeHigh[i]+$RangeLow[i])/2, $RangeStart[i]+$RangeLength[i], ($RangeHigh[i]+$RangeLow[i])/2) style(dottedline1,3) coloured(198,255,0,255)NextEndifreturnIl suffit de rajouter les lignes : 90, 110 et 111 (Ne pas oublier de mettre les paramètres à commentaire)
2 users thanked author for this post.
12/09/2025 at 1:04 PM #25438812/09/2025 at 6:02 PM #25439812/10/2025 at 8:40 PM #254425Vraiment top merci
Par contre, je l’utilise en multi-timeframe et ça rame pas mal, même en affichant seulement les deux ranges, ça reste lourd.
Tu aurais une astuce pour le rendre encore plus léger, s’il te plaît ?
Merci d’avance pour l’aide ! 🙏
12/11/2025 at 12:30 PM #25443212/11/2025 at 4:37 PM #254450Merci pour ta réponse
Pour clarifier : je n’utilise aucun filtre
Le code fonctionne bien et affiche uniquement deux ranges mais en multi-timeframe il reste quand même assez lourd et fait ramer l’affichage.Je cherche donc simplement une solution pour l’alléger, sans changer la logique de détection actuelle, juste optimiser la partie affichage.
Merci d’avance si tu as une idée ! 🙏12/11/2025 at 7:34 PM #254466Je ne pense pas que ce soit l’affichage de 2 rectangles et 6 segments qui fasse ramer le code…
Comment l’utilises tu en multi timeframe ?Si l’on veut accélérer le code, on peut enlever toute la partie filtre (s’il n’est pas utilisé) et on peut aussi se passer de tableau dans la mesure où seulement 1 ou 2 ranges sont nécessaires…
1 user thanked author for this post.
12/11/2025 at 8:38 PM #25446812/11/2025 at 9:01 PM #254473Est-ce plus rapide comme cela?
Le plus simple possible123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475DefParam DrawOnLastBarOnly = trueonce CandleLow = lowonce CandleHigh = highonce InsideCandles = 1once Breakindex = Barindexonce PrevCandleLow = lowonce PrevCandleHigh = highonce PrevInsideCandles = 1once PrevStartindex = 0once PrevEndindex = 0If Breakindex < Barindex thenBreakoutCandle = close > candleHigh[1] or close < candleLow[1]If BreakoutCandle thenif InsideCandles >= minLemgth thenIf close > CandleHigh[1] thenDrawarrowup(Barindex, Low)Elsif close < CandleLow[1] thenDrawarrowdown(Barindex, High)EndifPrevCandleLow = CandleLowPrevCandleHigh = CandleHighPrevInsideCandles = InsideCandlesPrevStartindex = BreakindexPrevEndindex = BarindexPrevCandleMiddle = CandleMiddleEndifCandleLow = lowCandleHigh = highInsideCandles = 1Breakindex = barindexElseif high > candleHigh[1] and close <= candleHigh[1] thencandleHigh = highendifif low < candleLow[1] and close >= candleLow[1] thencandleLow = lowendifCandleMiddle = (candleHigh + candleLow)/2insideCandles = insideCandles+1if insideCandles >= minLemgth thendrawsegment(breakindex,candleHigh,barindex+1,candleHigh)style(dottedline1,2)coloured("orange",255)drawsegment(breakindex,candlelow,barindex+1,candlelow)style(dottedline1,2)coloured("orange",255)DRAWRECTANGLE(breakindex,candleHigh,barindex+1,candlelow)coloured("orange",20)bordercolor("orange",100)drawsegment(breakindex,CandleMiddle,barindex+1,CandleMiddle)style(dottedline1,2)coloured("orange",255)endifEndifEndifIf PrevStartindex > 0 thendrawsegment(PrevStartindex,PrevCandleHigh,PrevEndindex,PrevCandleHigh)style(line,2)coloured("blue",255)drawsegment(PrevStartindex,PrevCandlelow,PrevEndindex,PrevCandlelow)style(line,2)coloured("blue",255)DRAWRECTANGLE(PrevStartindex,PrevCandleHigh,PrevEndindex,PrevCandlelow)coloured("grey",20)bordercolor("grey",100)drawsegment(PrevStartindex,PrevCandleMiddle,PrevEndindex,PrevCandleMiddle)style(dottedline1,2)coloured("blue",255)Endifreturn1 user thanked author for this post.
12/11/2025 at 9:17 PM #254474J’avais aussi créé une version MTF…
Range Detection MTF123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220DefParam DrawOnLastBarOnly = trueTimeframe(240 minutes,updateonclose)BarInd2H = BarindexClose2H = Closeonce RangeLow2H = lowonce RangeHigh2H = highonce insideCandles2H = 1once RangeIndex2H = 0MyTR2H = max(Range,max(abs(high - close[1]),abs(low - close[1])))if high > RangeHigh2H[1] and close <= RangeHigh2H[1] thenRangeHigh2H = highendifif low < RangeLow2H[1] and close >= RangeLow2H[1] thenRangeLow2H = lowendifbreakoutCandle2H = close > RangeHigh2H or close < RangeLow2HbullishBreak2H = close > RangeHigh2H[1] and insideCandles2H[1] >= (minLength2H+1)bearishBreak2H = close < RangeLow2H[1] and insideCandles2H[1] >= (minLength2H+1)RangeMiddle2H = (RangeHigh2H + RangeLow2H)/2FiltreBreakoutCandle2H = (Average[2](MyTR2H[0])>F2H*Average[20](MyTR2H[1]) and StartIndex2H>=BarInd2H-1)if breakoutCandle2H or (filtre2H and FiltreBreakoutCandle2H) then //(Average[2](MyTR[0])>F*Average[20](MyTR[1]) and StartIndex>=BarInd2H-1)) thenRangeLow2H = lowRangeHigh2H = highinsideCandles2H = 1StartIndex2H = BarInd2HIf insideCandles2H[1] >= (minLength2H) and insideCandles2H = 1 then //and $RangeStart[RangeIndex] = StartIndex[1] thenIf close > RangeHigh2H[1] thenDrawarrowup(BarInd2H,RangeLow2H[1]) coloured("darkturquoise",255)Elsif close < RangeLow[1] thenDrawarrowdown(BarInd2H,RangeHigh2H[1]) coloured("deeppink",255)EndifEndifelseinsideCandles2H = insideCandles2H+1if insideCandles2H >= (minLength2H) thenIf $RangeStart2H[RangeIndex2H] = StartIndex2H then$RangeFinish2H[RangeIndex2H] = StartIndex2H+insideCandles2H$RangeHigh2H[RangeIndex2H] = RangeHigh2H$RangeLow2H[RangeIndex2H] = RangeLow2HElseRangeIndex2H = RangeIndex2H + 1$RangeStart2H[RangeIndex2H] = StartIndex2H$RangeFinish2H[RangeIndex2H] = StartIndex2H+insideCandles2H$RangeHigh2H[RangeIndex2H] = RangeHigh2H$RangeLow2H[RangeIndex2H] = RangeLow2HEndifdrawsegment(StartIndex2H,RangeHigh2H,BarInd2H+1,RangeHigh2H)style(dottedline1,2)coloured("orange",255)drawsegment(StartIndex2H,RangeLow2H,BarInd2H+1,RangeLow2H)style(dottedline1,2)coloured("orange",255)DRAWRECTANGLE(StartIndex2H,RangeHigh2H,BarInd2H+1,RangeLow2H)coloured("orange",20)bordercolor("orange",100)drawsegment(StartIndex2H,(RangeHigh2H+RangeLow2H)/2,BarInd2H+1,(RangeHigh2H+RangeLow2H)/2)style(dottedline1,2)coloured("orange",255)endifendifFin2H = Max(0,RangeIndex2H-($RangeStart2H[RangeIndex2H]=StartIndex2H))If OnlyLastRange2H > 0 thenDebut2H = Max(0,Fin2H-OnlyLastRange2H+1+($RangeStart2H[RangeIndex2H]=StartIndex2H))ElseDebut2H = 0Endif/////////////////////////////////////////////////////////////////Timeframe(default)once config = 0once RangeLow = lowonce RangeHigh = highonce insideCandles = 1once RangeIndex = 0MyTR = max(Range,max(abs(high - close[1]),abs(low - close[1])))if high > RangeHigh[1] and close <= RangeHigh[1] thenRangeHigh = highendifif low < RangeLow[1] and close >= RangeLow[1] thenRangeLow = lowendifbreakoutCandle = close > RangeHigh or close < RangeLowbullishBreak = close > RangeHigh[1] and insideCandles[1] >= (minLength+1)bearishBreak = close < RangeLow[1] and insideCandles[1] >= (minLength+1)RangeMiddle = (RangeHigh + RangeLow)/2FiltreBreakoutCandle1 = (Average[2](MyTR[0])>F*Average[20](MyTR[1]) and StartIndex>=BarInd2H-1)if breakoutCandle or (filtre and FiltreBreakoutCandle1) then //(Average[2](MyTR[0])>F*Average[20](MyTR[1]) and StartIndex>=BarInd2H-1)) thenRangeLow = lowRangeHigh = highinsideCandles = 1StartIndex = barindexIf insideCandles[1] >= (minLength) and insideCandles = 1 then //and $RangeStart[RangeIndex] = StartIndex[1] thenIf close > RangeHigh[1] thenDrawarrowup(Barindex,RangeLow) coloured("darkturquoise",255)Elsif close < RangeLow[1] thenDrawarrowdown(Barindex,RangeHigh) coloured("deeppink",255)EndifEndifelseinsideCandles = insideCandles+1if insideCandles >= (minLength) thenIf $RangeStart[RangeIndex] = StartIndex then$RangeFinish[RangeIndex] = StartIndex+insideCandles$RangeHigh[RangeIndex] = RangeHigh$RangeLow[RangeIndex] = RangeLowElseRangeIndex = RangeIndex + 1$RangeStart[RangeIndex] = StartIndex$RangeFinish[RangeIndex] = StartIndex+insideCandles$RangeHigh[RangeIndex] = RangeHigh$RangeLow[RangeIndex] = RangeLowEndifdrawsegment(StartIndex,RangeHigh,barindex+1,RangeHigh)style(dottedline1,2)coloured("orange",255)drawsegment(StartIndex,RangeLow,barindex+1,RangeLow)style(dottedline1,2)coloured("orange",255)DRAWRECTANGLE(StartIndex,RangeHigh,barindex+1,RangeLow)coloured("orange",20)bordercolor("orange",100)drawsegment(StartIndex,(RangeHigh+RangeLow)/2,barindex+1,(RangeHigh+RangeLow)/2)style(dottedline1,2)coloured("orange",255)endifendifFin = Max(0,RangeIndex-($RangeStart[RangeIndex]=StartIndex))If OnlyLastRange > 0 thenDebut = Max(0,Fin-OnlyLastRange+1+($RangeStart[RangeIndex]=StartIndex))ElseDebut = 0EndifIf RangeIndex > 1 thenFor i = Debut to Fin dodrawsegment($RangeStart[i],$RangeHigh[i],$RangeFinish[i],$RangeHigh[i])style(line,2)coloured("blue",255)drawsegment($RangeStart[i],$RangeLow[i],$RangeFinish[i],$RangeLow[i])style(line,2)coloured("blue",255)DRAWRECTANGLE($RangeStart[i],$RangeHigh[i],$RangeFinish[i],$RangeLow[i])coloured("grey",20)bordercolor(204,0,0,1)drawsegment($RangeStart[i],($RangeHigh[i]+$RangeLow[i])/2,$RangeFinish[i],($RangeHigh[i]+$RangeLow[i])/2)style(dottedline1,2)coloured("blue",255)Lastclose = close[Barindex-($RangeFinish[i])]If Lastclose > $RangeHigh[i] thenDrawarrowup($RangeFinish[i],$RangeLow[i]) coloured("darkturquoise",255)ElseDrawarrowdown($RangeFinish[i],$RangeHigh[i]) coloured("deeppink",255)EndifNextEndifIF BarInd2H > 0 and BarInd2H <> BarInd2H[1] THENIf config = 0 and BarInd2H > 0 thenFor k = 0 to BarInd2H-1 do$BarBegin[k] = 0$BarEnd[k] = BarindexNextconfig = 1Endif$BarBegin[BarInd2H] = $BarEnd[BarInd2H-1]+1$BarEnd[BarInd2H] = BarindexEndifif insideCandles2H >= (minLength2H) thendrawsegment($BarBegin[StartIndex2H],RangeHigh2H,BarIndex+1,RangeHigh2H)style(dottedline1,2)coloured("peru",255)drawsegment($BarBegin[StartIndex2H],RangeLow2H,BarIndex+1,RangeLow2H)style(dottedline1,2)coloured("peru",255)DRAWRECTANGLE($BarBegin[StartIndex2H],RangeHigh2H,BarIndex+1,RangeLow2H)coloured("peru",10)bordercolor("peru",10)drawsegment($BarBegin[StartIndex2H],(RangeHigh2H+RangeLow2H)/2,BarIndex+1,(RangeHigh2H+RangeLow2H)/2)style(dottedline1,2)coloured("peru",255)endifIf Debut2H >= 0 thenFor i = Debut2H to Fin2H doIf $RangeStart2H[i]>=2 thenStart=abs(round($RangeStart2H[i]))Finish=abs(round($RangeFinish2H[i]))drawsegment($BarBegin[Start],$RangeHigh2H[i],$BarEnd[Finish],$RangeHigh2H[i])style(line,2)coloured("black",255)drawsegment($BarBegin[Start],$RangeLow2H[i],$BarEnd[Finish],$RangeLow2H[i])style(line,2)coloured("black",255)DRAWRECTANGLE($BarBegin[Start],$RangeHigh2H[i],$BarEnd[Finish],$RangeLow2H[i])coloured("black",10)bordercolor(204,0,0,1)drawsegment($BarBegin[Start],($RangeHigh2H[i]+$RangeLow2H[i])/2,$BarEnd[Finish],($RangeHigh2H[i]+$RangeLow2H[i])/2)style(dottedline1,2)coloured("black",255)/*Lastclose2H = Close2H[BarInd2H-Finish]If Lastclose2H > $RangeHigh2H[i] thenDrawarrowup($BarEnd[Finish],$RangeLow2H[i]) coloured("darkturquoise",255)ElseDrawarrowdown($BarEnd[Finish],$RangeHigh2H[i]) coloured("deeppink",255)Endif*//*Test1 = $RangeStart2H[i]Test2 = $RangeFinish2H[i]Test3 = Lastset($BarBegin)Test4 = Lastset($Barend)*/EndifNextEndifReturn1 user thanked author for this post.
12/11/2025 at 11:25 PM #254481merci beaucoup @LucasBest c’est le top
-
-
AuthorPosts
Find exclusive trading pro-tools on 