Chỉ số này làm nổi bật các điểm mà giá lệch đáng kể từ mức trung tâm. Khoảng cách lệch này được xác định bằng một giá trị được thiết lập bởi người dùng hoặc sử dụng số nhân của một khoảng 200 Atr và được nhân với các giá trị liên tiếp của chuỗi Fibonacci.
Cài đặt
Phương pháp: Phương pháp khoảng cách, các tùy chọn bao gồm
Sử dụng
Chỉ số cho phép làm nổi bật các điểm đảo ngược tiềm năng, nhưng nó cũng có thể xác định xu hướng bằng cách sử dụng mức trung tâm, với xu hướng tăng được phát hiện nếu mức trung tâm cao hơn giá trị trước đó và ngược lại đối với xu hướng giảm.
Khi một xu hướng tăng được phát hiện, và giá lệch đáng kể lên từ nó, một dấu kiểm đầu tiên sẽ được làm nổi bật bên cạnh chuỗi Fibonacci được sử dụng làm nhân, nếu giá lệch xuống, một chữ thập sẽ được hiển thị thay vào đó, sau đó ngưỡng khoảng cách sẽ được nhân với giá trị tiếp theo trong chuỗi Fibonacci.
Nếu giá lệch khỏi mức trung tâm như vậy mà chiều dài chuỗi lớn hơn chiều dài chuỗi được người dùng đặt, một nhãn phá vỡ sẽ được hiển thị bên cạnh một mức trung tâm mới với giá trị được xác định bởi giá đóng hiện tại, trong khi nhân Fibonacci sẽ được đặt lại thành 1.
Các cực trên và dưới được làm từ mức trung tâm và khoảng cách ngưỡng được làm nổi bật và có thể được sử dụng làm hỗ trợ và kháng cự.
backtest
/*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)