Chiến lược Breakout kênh Donchian đôi là một chiến lược giao dịch định lượng dựa trên kênh Donchian. Chiến lược này sử dụng sự kết hợp của các kênh Donchian nhanh và chậm để đạt được giao dịch breakout có rủi ro thấp và lợi nhuận cao.
Chiến lược này chủ yếu sử dụng hai kênh Donchian, bao gồm một kênh chậm hơn với thời gian dài hơn và một kênh nhanh hơn với thời gian ngắn hơn.
Kênh Donchian chậm có một khoảng thời gian dài hơn có thể lọc hiệu quả tiếng ồn thị trường, làm cho các tín hiệu đột phá của nó đáng tin cậy hơn.
Kênh Donchian nhanh có thời gian ngắn hơn có thể nhanh chóng phản ứng với biến động giá ngắn hạn. Khi giá phá vỡ lại qua kênh này, nó báo hiệu một sự đảo ngược xu hướng và thúc đẩy một lối ra để dừng lỗ hoặc kiếm lợi nhuận.
Ngoài ra, một điều kiện biến động được thiết lập như một bộ lọc cho các tín hiệu nhập cảnh. Chiến lược sẽ chỉ kích hoạt nhập cảnh khi chuyển động giá vượt quá ngưỡng tỷ lệ phần trăm đã xác định trước. Điều này tránh những cú đập thường xuyên trong quá trình củng cố giới hạn phạm vi.
Những rủi ro này có thể được giảm bằng cách tối ưu hóa các tham số, đặt dừng lỗ hợp lý, nhận thức về sự kiện v.v.
Chiến lược Breakout kênh Double Donchian nói chung là một chiến lược theo xu hướng tương đối ổn định và đáng tin cậy. Nó kết hợp các điểm mạnh của cả việc nắm bắt xu hướng và kiểm soát rủi ro, làm cho nó phù hợp như một mô-đun cơ bản trong các chiến lược giao dịch chứng khoán khác nhau.
/*backtest start: 2024-01-04 00:00:00 end: 2024-02-03 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © omererkan //@version=5 strategy(title="Double Donchian Channel Breakout", overlay=true, initial_capital = 1000, commission_value = 0.05, default_qty_value = 100, default_qty_type = strategy.percent_of_equity) slowLen = input.int(50, title="Slow Donchian") fastLen = input.int(30, title="Fast Donchian") volatility = input.int(3, title="Volatility (%)") longProfitPerc = input.float(2, title="Long TP1 (%)", minval=0.0, step=0.1) * 0.01 shortProfitPerc = input.float(2, title="Short TP1 (%)", minval=0.0, step=0.1) * 0.01 TP1Yuzde =input.int(50, title = "TP1 Position Amount (%)") ubSlow = ta.highest(close, slowLen)[1] lbSlow = ta.lowest(close, slowLen)[1] ubFast = ta.highest(close, fastLen)[1] lbFast = ta.lowest(close, fastLen)[1] plot(ubSlow, color=color.green, linewidth=2, title="Slow DoCh - Upperband") plot(lbSlow, color=color.green, linewidth=2, title="Slow DoCh - Lowerband") plot(ubFast, color=color.blue, linewidth=2, title="Fast DoCh - Upperband") plot(lbFast, color=color.blue, linewidth=2, title="Fast DoCh - Lowerband") fark = (ubSlow - lbSlow) / lbSlow * 100 longExitPrice = strategy.position_avg_price * (1 + longProfitPerc) shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc) longCondition = ta.crossover(close, ubSlow) and fark > volatility if (longCondition) strategy.entry("Long", strategy.long) shortCondition = ta.crossunder(close, lbSlow) and fark > volatility if (shortCondition) strategy.entry("Short", strategy.short) if strategy.position_size > 0 and ta.crossunder(close, lbFast) strategy.close("Long", "Close All") if strategy.position_size < 0 and ta.crossover(close, ubFast) strategy.close("Short", "Close All") // Take Profit if strategy.position_size > 0 strategy.exit("TP1", "Long", qty_percent = TP1Yuzde, limit = longExitPrice) if strategy.position_size < 0 strategy.exit("TP1", "Short", qty_percent = TP1Yuzde, limit = shortExitPrice)