
Chiến lược này sử dụng chỉ số Brinh Channel để vẽ ra một dải sóng dựa trên ATR và Fibonacci Regression như một dải giá của lưới. Kết hợp với đường trung bình EMA kép để xác định hướng xu hướng tổng thể, thiết lập lưới theo dõi dừng lỗ trên giá dải sóng Brinh theo hướng xu hướng một cách chọn lọc, để thực hiện trọng tài theo dõi xu hướng.
Sử dụng trục trong đường Boolean và dựa trên ATR và 4 đường Fibonacci để vẽ các dải sóng giá trên và dưới đường.
Đường EMA nhanh và đường SMA chậm tạo thành hai đường trung bình để xác định hướng xu hướng tổng thể. Đường nhanh phá vỡ đường chậm là thị trường nhiều đầu, ngược lại là thị trường trống.
Trong thị trường đa đầu chỉ làm nhiều, chọn Brin theo đường ray gần giá phá vỡ đường dẫn để mở nhiều vị trí; trong thị trường trống chỉ làm trống, chọn Brin trên đường ray gần giá phá vỡ đường dẫn để mở vị trí.
Thiết lập điều kiện dừng lỗ: Nếu K line đảo ngược mạnh, hãy rút khỏi vị trí hướng hiện tại.
Sử dụng đường hai ngang để đánh giá xu hướng cấp độ lớn, tránh giao dịch ngược.
Mạng lưới kênh Brin ATR đã thiết lập nhiều mức giá mở kho, tăng tỷ lệ thành công của các giao dịch mở kho.
Fibonacci quay trở lại các vùng đã thiết lập giá phân tán, với số lượng vị trí khác nhau trong các vùng khác nhau, để thực hiện phân tán vốn.
Điều kiện dừng lỗ trực tiếp giúp dừng lỗ nhanh hơn và giảm lợi nhuận.
Sự sai lầm trong việc đánh giá xu hướng cấp độ lớn có thể dẫn đến tổn thất ngược. Các tham số đường trung bình có thể được điều chỉnh thích hợp, hoặc thêm các chỉ số khác để đánh giá hỗ trợ.
Khi biến động quá lớn, giá có thể phá vỡ khu vực lưới trực tiếp, không thể mở vị trí. Bạn có thể điều chỉnh tham số vùng sóng, tăng cơ hội mở vị trí.
Điều kiện dừng lỗ là chủ quan, tiêu chuẩn nhận dạng của các nhà giao dịch khác nhau có thể có lỗi.
Thêm phân tích phụ trợ cho chỉ số apo để đánh giá xu hướng hai chiều.
Sử dụng chỉ số biến động thị trường để tối ưu hóa các tham số của Blink để thích ứng tốt hơn với sự thay đổi động lực của thị trường.
Giảm mức độ dừng lỗ và thêm các điều kiện dừng của phương thức OTHER để giảm sai sót.
Chiến lược này có ý tưởng tổng thể rõ ràng, sử dụng kênh Brin ATR và hai đường ngang nhau để thực hiện phán đoán toàn diện và tổng hợp về tín hiệu giao dịch chiến lược, giảm tối đa nguy cơ sai lầm. Ưu điểm của chiến lược rõ ràng và có thể áp dụng thực tế; nhưng các chi tiết như cài đặt tham số và điều kiện dừng lỗ vẫn có không gian để tối ưu hóa và cần được hoàn thiện hơn nữa.
/*backtest
start: 2023-11-12 00:00:00
end: 2023-12-12 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Aayonga
//@version=5
strategy("fib trend grid@Aa", overlay=true,initial_capital=2000, default_qty_type=strategy.fixed, default_qty_value=1)
//回测时间
useDateFilter=input.bool(true,title = "启用回测时间范围限定(backtest)", group = "回测范围(backtest)")
backtesStarDate=input(timestamp("1 Jan 2015"),title = "开始时间(Start)", group = "回测范围(backtest)")
backtestEndDate=input(timestamp("1 Jan 2040"),title = "结束时间(finish)",group = "回测范围(backtest)")
inTradeWindow=true
//入场位 entry
bolllen=input.int(defval=20,minval=1,title="布林长度,(boll length)",group = "入场位(entry)")
sma=ta.sma(close,bolllen)
avg=ta.atr(bolllen)
fib1=input(defval=1.236,title="Fib 1",group = "入场位(entry)")
fib2=input(defval=2.382,title="Fib 2",group = "入场位(entry)")
fib3=input(defval=3.618,title="fib 3",group = "入场位(entry)")
fib4=input(defval=4.236,title="Fib 4",group = "入场位(entry)")
r1=avg*fib1
r2=avg*fib2
r3=avg*fib3
r4=avg*fib4
top4=sma+r4
top3=sma+r3
top2=sma+r2
top1=sma+r1
bott1=sma-r1
bott2=sma-r2
bott3=sma-r3
bott4=sma-r4
//趋势 trend
t4=plot(top4,title="卖 (sell)4",color=color.rgb(244, 9, 9))
t3=plot(top3,title = "卖(sell) 3",color=color.rgb(211, 8, 8))
t2=plot(top2,title="卖 (sell)2",color=color.rgb(146, 13, 13))
t1=plot(top1,title="卖(sell) 1",color=color.rgb(100, 3, 3))
b1=plot(bott1,title="买(buy)1",color=color.rgb(4, 81, 40))
b2=plot(bott2,title="买(buy)2",color=color.rgb(15, 117, 46))
b3=plot(bott3,title = "买(buy)3",color =color.rgb(8, 176, 42) )
b4=plot(bott4,title="买(buy)4",color=color.rgb(15, 226, 103))
plot(sma,style=plot.style_cross,title="SMA",color=color.rgb(47, 16, 225))
//趋势
LengthF=input(defval = 25,title = "快线长度(fastlength)")
LengthS=input(defval=200,title = "慢线长度(slowlength)")
emaF=ta.ema(close,LengthF)
smaS=ta.sma(close,LengthS)
longTrend=emaF>smaS
longb=ta.crossover(emaF,smaS)
bgcolor(longb ? color.new(color.green,40):na,title = "多头强势(bull trend)")
shortTrend=smaS>emaF
shortb=ta.crossunder(emaF,smaS)
bgcolor(shortb ? color.new(#951313, 40):na,title = "空头强势(bear trend)")
//pinbar
bullPinBar = ((close > open) and ((open - low) > 0.6* (high - low))) or ((close < open) and ((close - low) > 0.9 * (high - low)))
//plotshape(bullPinBar , text ="pinbar", textcolor=color.rgb(9, 168, 144),location=location.belowbar, color=color.rgb(29, 103, 67), size=size.tiny)
bearPinBar = ((close > open) and ((high - close) > 0.7 * (high - low))) or ((close < open) and ((high - open) > 0.7 * (high - low)))
//plotshape(bearPinBar , text ="pinbar", textcolor=color.rgb(219, 12, 12),location=location.abovebar, color=color.rgb(146, 7, 7), size=size.tiny)
buy1=ta.crossunder(close,bott1) and longTrend and close>ta.ema(close,100)
buy2=ta.crossunder(close,bott2) and longTrend and close>ta.ema(close,80)
buy3=ta.crossunder(close,bott3) and longTrend and close>ta.ema(close,80)
buy4=ta.crossunder(close,bott4) and longTrend and close>ta.ema(close,80)
buyclose=bearPinBar or ta.crossunder(close,smaS)
if buy2 or buy3 or buy4 or buy1 and inTradeWindow
strategy.order("多(buy)",strategy.long)
if buyclose and inTradeWindow
strategy.close("多(buy)")
sell1=ta.crossover(close,top1) and shortTrend and close<ta.ema(close,200)
sell2=ta.crossover(close,top2) and shortTrend and close<ta.ema(close,200)
sell3=ta.crossover(close,top3) and shortTrend and close<ta.ema(close,200)
sell4=ta.crossover(close,top4) and shortTrend and close<ta.ema(close,200)
sellclose=bullPinBar or ta.crossover(close,ta.sma(close,220))
if sell1 or sell2 or sell3 or sell4 and inTradeWindow
strategy.order("空(sell)",strategy.short)
if sellclose and inTradeWindow
strategy.close("空(sell)")