Эта стратегия является количественной торговой системой, которая сочетает в себе G-Channel и экспоненциальную скользящую среднюю (EMA). Основная концепция заключается в том, чтобы улавливать направления тренда рынка через G-Channel, используя EMA для подтверждения сигналов и контроля рисков, с целью получения прибыли от колебаний рынка. Стратегия работает в полностью автоматизированном режиме без ручного вмешательства.
Стратегия работает на основе двух основных индикаторов: G-Channel и EMA. G-Channel идентифицирует ценовые тенденции путем динамического расчета верхних и нижних полос, генерируя торговые сигналы, когда цены проходят через канал. В частности, стратегия использует 100-периодный G-Channel расчет, постоянно обновляя границы канала с помощью математических формул. Кроме того, 50-периодная EMA вводится в качестве вторичного подтверждения, выполняя сделки только тогда, когда относительная позиция цены к EMA соответствует ожиданиям. Условия покупки запускаются, когда G-Channel сигнализирует длинный и закрывающая цена ниже EMA, в то время как условия продажи возникают, когда G-Channel сигнализирует короткий и закрывающая цена выше EMA.
Эта стратегия создает надежную количественную торговую систему путем объединения технических индикаторов G-Channel и EMA. Логика стратегии ясна, реализация проста и она предлагает хорошую масштабируемость. Благодаря правильной оптимизации параметров и мерам контроля риска стратегия показывает потенциал для получения стабильной доходности в живой торговле. Рекомендуется оптимизировать стратегию на основе характеристик рынка и строго реализовывать протоколы управления рисками при ее применении к живой торговле.
/*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')