Cet indicateur met en évidence les points où le prix s'écarte sensiblement d'un niveau central. Cette distance d'écart est déterminée par une valeur définie par l'utilisateur ou en utilisant un multiple d'une période 200 Atr et est multipliée par des valeurs successives de la séquence de Fibonacci.
Paramètres
Méthode: Méthode de distance, les options incluent
Utilisation
L'indicateur permet de mettre en évidence les points d'inversion potentiels, mais il peut également déterminer les tendances en utilisant le niveau central, avec une tendance haussière détectée si le niveau central est supérieur à sa valeur précédente et inversement pour une tendance baissière.
Lorsqu'une tendance à la hausse est détectée et que le prix dévie de manière significative vers le haut, un premier coffret sera mis en évidence à côté de la séquence de Fibonacci utilisée comme multiplicateur. Si le prix dévie vers le bas, un croisement sera affiché à la place, alors le seuil de distance sera multiplié par la valeur suivante de la séquence de Fibonacci.
Si le prix s'écarte du niveau central de sorte que la longueur de la séquence est supérieure à la longueur de séquence définie par l'utilisateur, une étiquette de rupture sera affichée à côté d'un nouveau niveau central avec une valeur déterminée par le prix de clôture actuel, tandis que le multiplicateur de Fibonacci sera réinitialisé à 1.
Les extrémités supérieures et inférieures réalisées à partir du niveau central et de la distance de seuil sont mises en évidence et peuvent être utilisées comme support et résistance.
test de retour
/*backtest start: 2022-04-10 00:00:00 end: 2022-05-07 23:59:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/ // © LuxAlgo //@version=5 indicator("Fibonacci Progression With Breaks [LUX]",overlay=1,max_labels_count=500,max_lines_count=500) method = input.string('Atr',options=['Atr','Manual'],inline='inline1') size = input(1.,'',inline='inline1') max = input(3,'Sequence Length') //---- var fib = array.from(1,1) var dist = 0.,var avg = 0.,var fib_n = 1,var os = 0 src = close n = bar_index if barstate.isfirst for i = 1 to max array.push(fib,array.get(fib,i-1) + array.get(fib,i)) //---- if method == 'Atr' dist := ta.atr(200)*size*array.get(fib,fib_n) else dist := size*array.get(fib,fib_n) fib_n := math.abs(src-avg) > dist ? fib_n+1 : fib_n avg := nz(fib_n > max+1 ? src : avg[1],src) fib_n := fib_n > max+1 ? 1 : fib_n buy = avg > avg[1] sell = avg < avg[1] os := buy ? 1 : sell ? 0 : os tp = avg != avg[1] ? na : os == 1 ? avg + dist : avg - dist sl = avg != avg[1] ? na : os == 0 ? avg + dist : avg - dist //---- css = os == 1 ? #0cb51a : #ff1100 plot0 = plot(src,color=na) plot1 = plot(avg,color=na) fill(plot0,plot1,color.new(css,80)) //---- plotshape(buy ? low : na,"Buy Label",shape.labelup,location.absolute,#0cb51a,0,text="B",textcolor=color.white,size=size.tiny) plotshape(sell ? high : na,"Sell Label",shape.labeldown,location.absolute,#ff1100,0,text="S",textcolor=color.white,size=size.tiny) plot(tp,'Target',#0cb51a,1,plot.style_linebr) plot(sl,'Stop',#ff1100,1,plot.style_linebr) if buy strategy.entry("Enter Long", strategy.long) else if sell strategy.entry("Enter Short", strategy.short)