Chiến lược phá vỡ kênh Donchian kép là một chiến lược giao dịch phá vỡ dựa trên các kênh Donchian. Nó sử dụng các kênh Donchian nhanh và chậm để xây dựng các tín hiệu giao dịch dài và ngắn. Khi giá vượt qua kênh chậm, mở các vị trí dài hoặc ngắn. Khi giá vượt qua kênh nhanh, đóng các vị trí. Chiến lược cũng thiết lập các điều kiện lấy lợi nhuận và dừng lỗ.
Chiến lược phá vỡ kênh Donchian đôi dựa trên hai thông số:Thời kỳ kênh Donchian chậmvàThời kỳ kênh Donchian nhanhChiến lược đầu tiên tính toán các dải trên và dưới của hai kênh Donchian.
Tín hiệu đầu vào dài làđột quỵ trên dải trênvớisự biến động lớn hơn ngưỡng. Tín hiệu đầu vào ngắn là mộtPhân loại dưới dải dướivớisự biến động lớn hơn ngưỡng.
Tín hiệu dừng mất mát dài làPhân loại dưới dải dưới. Tín hiệu dừng lỗ ngắn là mộtđột quỵ trên dải trên.
Chiến lược cũng đặt rathu lợi nhuậnCác điều kiện thoát. tỷ lệ mất lợi nhuận mặc định là 2%, tức là mất lợi nhuận một nửa vị trí khi biến động giá đạt 2%.
Chiến lược Breakout kênh Donchian kép có những lợi thế sau:
Thiết kế kênh kép có thể chụp tín hiệu xu hướng từ cả khung thời gian dài và ngắn hơn, cho phép nhập chính xác hơn.
Điều kiện biến động tránh giao dịch thường xuyên trên các thị trường giới hạn phạm vi.
Các thiết lập lợi nhuận toàn diện và dừng lỗ khóa lợi nhuận một phần và giảm lỗ.
Đơn giản và rõ ràng chiến lược logic, dễ hiểu và thực hiện.
Các tham số có thể tùy chỉnh phù hợp với các sản phẩm và ưu tiên thương mại khác nhau.
Chiến lược phá vỡ kênh Donchian đôi cũng có một số rủi ro:
Thiết kế kênh kép nhạy cảm và có thể tạo ra tín hiệu sai. Các kênh rộng hơn hoặc các tham số biến động được điều chỉnh có thể làm giảm tín hiệu sai.
Trong các thị trường biến động, dừng lỗ có thể được kích hoạt quá thường xuyên.
Tỷ lệ lợi nhuận cố định không tối đa hóa lợi nhuận. Xem xét can thiệp động hoặc thủ công để định giá lợi nhuận tối ưu.
Hiệu suất giao dịch thực tế có thể khác với kỳ vọng backtest.
Chiến lược Breakout kênh Donchian kép có thể được tối ưu hóa trong một số khía cạnh:
Kiểm tra nhiều kết hợp thời gian hơn để tìm các thông số tối ưu.
Hãy thử các thước đo biến động khác nhau như ATR để tìm các thước đo ổn định nhất.
Đặt giới hạn số lượng mục nhập để tránh tổn thất vào cuối xu hướng.
Cố gắng động lấy lợi nhuận cho lợi nhuận giao dịch đơn cao hơn.
Tích hợp các chỉ số khác để lọc các mục và cải thiện độ chính xác, ví dụ: khối lượng.
Tối ưu hóa các mô hình quản lý tiền tệ như định dạng vị trí phân số cố định để kiểm soát rủi ro tốt hơn.
Tóm lại, Chiến lược Breakout kênh Donchian kép là một chiến lược theo xu hướng tuyệt vời. Nó kết hợp cả khả năng xác định xu hướng và bảo vệ đảo ngược. Với tối ưu hóa tham số và tinh chỉnh quy tắc, nó có thể có lợi cho hầu hết các sản phẩm và điều kiện thị trường. Chiến lược đơn giản và thực tế, đáng để học và áp dụng cho các nhà giao dịch định lượng.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 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) // Donchian Channels slowLen = input.int(50, title="Slow Donchian", group = "Conditions") fastLen = input.int(30, title="Fast Donchian", group = "Conditions") // Volatility Calculated as a percentage volatility = input.int(3, title="Volatility (%)", group = "Conditions") // Long positions long = input.bool(true, "Long Position On/Off", group = "Strategy") longProfitPerc = input.float(2, title="Long TP1 (%)", group = "Strategy", minval=0.0, step=0.1) * 0.01 // Short positions short = input.bool(true, "Short Position On/Off", group = "Strategy") shortProfitPerc = input.float(2, title="Short TP1 (%)", group = "Strategy", minval=0.0, step=0.1) * 0.01 // First take profit point for positions TP1Yuzde =input.int(50, title = "TP1 Position Amount (%)", group = "Strategy") // Slow Donchian Calculated ubSlow = ta.highest(high, slowLen)[1] lbSlow = ta.lowest(low, slowLen)[1] // Fast Donchian Calculated ubFast = ta.highest(high, fastLen)[1] lbFast = ta.lowest(low, fastLen)[1] // Plot Donchian Channel for entries 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") // This calculation, the strategy does not open position in the horizontal market. fark = (ubSlow - lbSlow) / lbSlow * 100 // Take profit levels longExitPrice = strategy.position_avg_price * (1 + longProfitPerc) shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc) // Code long trading conditions longCondition = ta.crossover(close, ubSlow) and fark > volatility if longCondition and long == true strategy.entry("Long", strategy.long) // Code short trading conditions shortCondition = ta.crossunder(close, lbSlow) and fark > volatility if shortCondition and short == true strategy.entry("Short", strategy.short) // Determine long trading conditions if strategy.position_size > 0 and ta.crossunder(close, lbFast) strategy.close_all("Close All") // Determine short trading conditions if strategy.position_size < 0 and ta.crossover(close, ubFast) strategy.close_all("Close All") // Take Profit Long if strategy.position_size > 0 strategy.exit("TP1", "Long", qty_percent = TP1Yuzde, limit = longExitPrice) // Take Profit Short if strategy.position_size < 0 strategy.exit("TP1", "Short", qty_percent = TP1Yuzde, limit = shortExitPrice)