Chiến lược này là một hệ thống giao dịch theo xu hướng dựa trên kênh G tùy chỉnh và G-Channel và G-Channel bao gồm các đường trên (a), dưới (b) và trung bình (avg), xác định ranh giới kênh thông qua tính toán năng động của giá hiện tại và giá lịch sử. Chiến lược kết hợp EMA như một bộ lọc xu hướng, tạo ra các tín hiệu giao dịch thông qua các đường chéo giá với các đường kênh và vị trí tương đối với EMA, nắm bắt hiệu quả các điểm đảo ngược xu hướng thị trường.
Các tính toán G-Channel dựa trên giá hiện tại và dữ liệu lịch sử, điều chỉnh chiều rộng kênh một cách năng động thông qua một thuật toán thích nghi. Đường trên (a) lấy tối đa giá hiện tại và đường trên trước đó, được điều chỉnh bởi các thông số chiều rộng và chiều dài kênh; đường dưới (b) sử dụng một phương pháp tương tự cho các giá trị tối thiểu; đường giữa là trung bình số học. Các tín hiệu giao dịch được kích hoạt bằng cách kết hợp chéo giá với các đường kênh và vị trí tương đối với EMA: tín hiệu mua xảy ra khi giá vượt qua đường dưới trong khi dưới EMA; tín hiệu bán khi giá vượt qua đường trên trong khi dưới EMA.
G-Channel và EMA Trend Filter Trading System là một chiến lược giao dịch hoàn chỉnh kết hợp các kênh đột phá và theo xu hướng. Thông qua các đặc điểm năng động của G-Channel và chức năng xác nhận xu hướng của EMA, chiến lược có hiệu quả nắm bắt các bước ngoặt của thị trường trong khi kiểm soát rủi ro giao dịch. Mặc dù có một số hạn chế nhất định, hiệu suất tổng thể của chiến lược có thể được cải thiện hơn nữa thông qua các hướng tối ưu hóa được đề xuất.
/*backtest start: 2024-11-04 00:00:00 end: 2024-12-04 00:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("G-Channel with EMA Strategy", overlay=true) // G-Channel Indicator length = input.int(100, title="G-Channel Length") src = input(close, title="Source") var float a = na var float b = na a := math.max(src, nz(a[1])) - (nz(a[1]) - nz(b[1])) / length b := math.min(src, nz(b[1])) + (nz(a[1]) - nz(b[1])) / length avg = (a + b) / 2 // G-Channel buy/sell signals crossup = ta.crossover(close, b) crossdn = ta.crossunder(close, a) bullish = ta.barssince(crossdn) <= ta.barssince(crossup) // EMA Indicator emaLength = input.int(200, title="EMA Length") ema = ta.ema(close, emaLength) // Buy Condition: G-Channel gives a buy signal and price is below EMA buySignal = bullish and close < ema // Sell Condition: G-Channel gives a sell signal and price is above EMA sellSignal = not bullish and close > ema // Plotting the G-Channel and EMA plot(a, title="Upper", color=color.blue, linewidth=2, transp=100) plot(b, title="Lower", color=color.blue, linewidth=2, transp=100) plot(avg, title="Average", color=bullish ? color.lime : color.red, linewidth=1, transp=90) plot(ema, title="EMA", color=color.orange, linewidth=2) // Strategy Execution if (buySignal) strategy.entry("Buy", strategy.long) if (sellSignal) strategy.entry("Sell", strategy.short) // Plot Buy/Sell Signals plotshape(buySignal, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy") plotshape(sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")