Tiến trình Fibonacci với các đoạn phá vỡ

Tác giả:ChaoZhang, Ngày: 2022-05-17 10:24:46
Tags:ATR

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 Manual hoặc Atr Kích thước: Khoảng cách bằng các điểm nếu phương pháp được chọn là Manual hoặc nhân Atr nếu phương pháp được chọn là Atr Độ dài trình tự: Định số lượng tối đa các độ lệch đáng kể được phép.

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

img


/*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)

Có liên quan

Thêm nữa