Chiến lược này tính toán các đường ray giữa, trên và dưới của kênh Keltner. Nó lấp đầy màu trên các đường ray giữa và dưới. Sau khi xác định hướng của kênh, nó phá vỡ và mua và bán. Đây là một loại chiến lược theo dõi xu hướng.
Chỉ số cốt lõi là Keltner Channel. Đường ray giữa của kênh là trung bình động cân N ngày của giá điển hình (giá cao nhất + giá thấp nhất + giá đóng cửa) / 3. Các đường ray trên và dưới của kênh tương ứng là một phạm vi giao dịch N ngày cân trung bình động cách xa đường ray giữa. Nơi phạm vi giao dịch có thể chọn sự biến động thực sự ATR, hoặc trực tiếp lấy độ phình (giá cao nhất - giá thấp nhất).
Cụ thể, chiến lược chủ yếu đánh giá giá liệu giá có vượt qua đường ray trên hay đường ray dưới, và đưa ra quyết định dài hay ngắn với đường ray giữa là ranh giới. Nếu giá đóng lớn hơn đường ray trên, đi dài; nếu giá đóng thấp hơn đường ray dưới, đi ngắn. Đường dừng lỗ là giá trị MA của đường ray giữa.
Nói chung, chiến lược này tương đối đơn giản và trực tiếp, và đó là một chiến lược đột phá giá phổ biến. Ưu điểm là ý tưởng rõ ràng và dễ hiểu và thực hiện, phù hợp cho người mới bắt đầu học. Nhưng cũng có một số hạn chế nhất định. Nó nhạy cảm với các thông số, kết quả không đồng đều và yêu cầu thử nghiệm và tối ưu hóa lặp đi lặp lại. Nếu nó có thể được kết hợp với các chỉ số phán đoán phức tạp hơn, nó có thể tạo thành một chiến lược giao dịch mạnh mẽ hơn.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 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/ // © WMX_Q_System_Trading //@version=3 strategy(title = "WMX Keltner Channels strategy", shorttitle = "WMX Keltner Channels strategy", overlay = true) useTrueRange = input(true) length = input(20, minval=5) mult = input(2.618, minval=0.1) mah =ema(ema( ema(high, length),length),length) mal =ema(ema( ema(low, length),length),length) range = useTrueRange ? tr : high - low rangema =ema(ema( ema(range, length),length),length) upper = mah + rangema * mult lower = mal - rangema * mult ma=(upper+lower)/2 uc = red lc=green u = plot(upper, color=uc, title="Upper") basis=plot(ma, color=yellow, title="Basis") l = plot(lower, color=lc, title="Lower") fill(u, basis, color=uc, transp=95) fill(l, basis, color=lc, transp=95) strategy.entry("Long", strategy.long, stop = upper, when = strategy.position_size <= 0 and close >upper) strategy.entry("Short", strategy.short, stop = lower, when = strategy.position_size >= 0 and close<lower) if strategy.position_size > 0 strategy.exit("Stop Long", "Long", stop = ma) if strategy.position_size < 0 strategy.exit("Stop Short", "Short", stop = ma)