Эта стратегия представляет собой многоиндикаторную торговую систему, которая сочетает в себе G-Channel, экспоненциальную скользящую среднюю (EMA) и средний истинный диапазон (ATR). Она определяет торговые сигналы с помощью динамических уровней поддержки / сопротивления и подтверждения тренда, управляя рисками с использованием уровней стоп-лосса и прибыли на основе ATR. Система подчеркивает надежность и контроль рисков, подходящая для трейдеров, ищущих надежный подход к торговле.
Основная логика стратегии основана на следующих ключевых компонентах: G-Channel рассчитывает динамические уровни поддержки и сопротивления, постоянно регулируя верхние и нижние полосы 2. EMA подтверждает направление общей тенденции, а направление торговли определяется ценовой позицией по отношению к EMA 3. Сигналы входа основаны на прорывах G-канала и подтверждении позиции EMA Уровни стоп-лосса и тека прибыли устанавливаются с использованием кратных ATR, причем 2x ATR для стоп-лосса и 4x ATR для тека прибыли. 5. Отслеживание состояния предотвращает последовательное дублирование сигналов
Стратегия создает полную торговую систему путем объединения нескольких зрелых технических индикаторов. Ее сила заключается в многоуровневом механизме подтверждения сигнала и управлении рисками на основе волатильности, хотя она все еще требует оптимизации на основе конкретных рыночных характеристик в практических приложениях.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-10 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("G-Channel with EMA Strategy and ATR SL/TP", shorttitle="G-EMA-ATR", overlay=true) // Input parameters length = input.int(100, title="G-Channel Length") src = input.source(close, title="Source") ema_length = input.int(50, title="EMA Length") // EMA length atr_length = input.int(14, title="ATR Length") // ATR length // G-Channel calculation var float a = na var float b = na 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 = (a + b) / 2 // G-Channel cross conditions crossup = b[1] < close[1] and b > close crossdn = a[1] < close[1] and a > close bullish = ta.barssince(crossdn) <= ta.barssince(crossup) c = bullish ? color.lime : color.red // EMA calculation ema_value = ta.ema(src, ema_length) // ATR calculation atr_value = ta.atr(atr_length) // Plot G-Channel average and Close price p1 = plot(avg, "G-Channel Average", color=c, linewidth=1, transp=90) p2 = plot(close, "Close Price", color=c, linewidth=1, transp=100) fill(p1, p2, color=c, transp=90) // Plot EMA plot(ema_value, color=color.blue, linewidth=2, title="EMA") // Buy and Sell conditions buy_condition = bullish and close < ema_value sell_condition = not bullish and close > ema_value // Track the last signal state var bool last_was_buy = false var bool last_was_sell = false // ATR-based SL and TP calculations long_sl = close - 2 * atr_value // 2 ATR below the entry for SL long_tp = close + 4 * atr_value // 4 ATR above the entry for TP short_sl = close + 2 * atr_value // 2 ATR above the entry for SL (short) short_tp = close - 4 * atr_value // 4 ATR below the entry for TP (short) // Generate Buy signal only if the last signal was not Buy if (buy_condition and not last_was_buy) strategy.entry("Buy", strategy.long) strategy.exit("Exit Buy", from_entry="Buy", stop=long_sl, limit=long_tp) last_was_buy := true last_was_sell := false // Generate Sell signal only if the last signal was not Sell if (sell_condition and not last_was_sell) strategy.entry("Sell", strategy.short) strategy.exit("Exit Sell", from_entry="Sell", stop=short_sl, limit=short_tp) last_was_sell := true last_was_buy := false // Plot shapes for Buy and Sell signals plotshape(series=buy_condition and not last_was_buy, location=location.belowbar, style=shape.labelup, color=color.lime, size=size.small, text="Buy", textcolor=color.white) plotshape(series=sell_condition and not last_was_sell, location=location.abovebar, style=shape.labeldown, color=color.red, size=size.small, text="Sell", textcolor=color.white)