Chiến lược này là một hệ thống giao dịch định lượng kết hợp G-Channel và Exponential Moving Average (EMA). Khái niệm cốt lõi là nắm bắt các hướng xu hướng thị trường thông qua G-Channel trong khi sử dụng EMA để xác nhận tín hiệu và kiểm soát rủi ro, nhằm tạo ra lợi nhuận từ biến động thị trường. Chiến lược hoạt động trong chế độ tự động hoàn toàn mà không cần can thiệp thủ công.
Chiến lược này hoạt động dựa trên hai chỉ số cốt lõi: G-Channel và EMA. G-Channel xác định xu hướng giá bằng cách tính toán động các băng tần trên và dưới, tạo ra tín hiệu giao dịch khi giá vượt qua kênh. Cụ thể, chiến lược sử dụng tính toán G-Channel 100 giai đoạn, liên tục cập nhật ranh giới kênh thông qua công thức toán học. Ngoài ra, EMA 50 giai đoạn được giới thiệu như là xác nhận thứ cấp, chỉ thực hiện giao dịch khi vị trí tương đối của giá với EMA đáp ứng mong đợi. Các điều kiện mua được kích hoạt khi G-Channel báo hiệu dài và giá đóng dưới EMA, trong khi các điều kiện bán xảy ra khi G-Channel báo hiệu ngắn và giá đóng trên EMA.
Chiến lược này xây dựng một hệ thống giao dịch định lượng mạnh mẽ bằng cách kết hợp các chỉ số kỹ thuật G-Channel và EMA. Logic chiến lược rõ ràng, thực hiện đơn giản và nó cung cấp khả năng mở rộng tốt. Thông qua tối ưu hóa tham số và các biện pháp kiểm soát rủi ro thích hợp, chiến lược cho thấy tiềm năng tạo ra lợi nhuận ổn định trong giao dịch trực tiếp.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-18 08:00:00 period: 1d basePeriod: 1d 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/ // © stanleygao01 //@version=5 strategy('G-Channel with EMA Strategy', overlay=true) // G-Channel parameters length = input(100, title='G-Channel Length') src = input(close, title='Source') a = 0.0 b = 0.0 a := math.max(src, nz(a[1])) - nz(a[1] - b[1]) / length b := math.min(src, nz(b[1])) + nz(a[1] - b[1]) / length avg = math.avg(a, b) crossup = b[1] < close[1] and b > close crossdn = a[1] < close[1] and a > close bullish = ta.barssince(crossdn) <= ta.barssince(crossup) // EMA parameters emaLength = input(50, title='EMA Length') ema = ta.ema(close, emaLength) // Buy and Sell Conditions buyCondition = bullish and close < ema sellCondition = not bullish and close > ema // Plot G-Channel c = bullish ? color.lime : color.red p1 = plot(avg, title='Average', color=c, linewidth=1, transp=90) p2 = plot(close, title='Close Price', color=c, linewidth=1, transp=100) fill(p1, p2, color=c, transp=90) // Plot EMA plot(ema, title='EMA', color=color.new(color.blue, 0), linewidth=2) // Strategy Entries and Exits if buyCondition strategy.entry('Buy', strategy.long) if sellCondition strategy.close('Buy') // Plot Buy/Sell Labels plotshape(buyCondition, title='Buy Signal', location=location.belowbar, color=color.new(color.lime, 0), style=shape.labelup, text='Buy') plotshape(sellCondition, title='Sell Signal', location=location.abovebar, color=color.new(color.red, 0), style=shape.labeldown, text='Sell')