В процессе загрузки ресурсов... загрузка...

Многопоказательная тенденция после стратегии с динамическим каналом и системой торговли скользящими средними

Автор:Чао Чжан, Дата: 2024-12-12 15:58:57
Тэги:ЕМАATR

 Multi-Indicator Trend Following Strategy with Dynamic Channel and Moving Average Trading System

Обзор

Эта стратегия представляет собой многоиндикаторную торговую систему, которая сочетает в себе G-Channel, экспоненциальную скользящую среднюю (EMA) и средний истинный диапазон (ATR). Она определяет торговые сигналы с помощью динамических уровней поддержки / сопротивления и подтверждения тренда, управляя рисками с использованием уровней стоп-лосса и прибыли на основе ATR. Система подчеркивает надежность и контроль рисков, подходящая для трейдеров, ищущих надежный подход к торговле.

Принципы стратегии

Основная логика стратегии основана на следующих ключевых компонентах: G-Channel рассчитывает динамические уровни поддержки и сопротивления, постоянно регулируя верхние и нижние полосы 2. EMA подтверждает направление общей тенденции, а направление торговли определяется ценовой позицией по отношению к EMA 3. Сигналы входа основаны на прорывах G-канала и подтверждении позиции EMA Уровни стоп-лосса и тека прибыли устанавливаются с использованием кратных ATR, причем 2x ATR для стоп-лосса и 4x ATR для тека прибыли. 5. Отслеживание состояния предотвращает последовательное дублирование сигналов

Преимущества стратегии

  1. Механизм подтверждения сигналов на нескольких уровнях повышает надежность торговли
  2. Динамически регулируемые границы каналов адаптируются к различным рыночным условиям
  3. Управление рисками на основе волатильности обеспечивает лучшую адаптивность
  4. Избегание дублирования сигналов снижает риск переоценки
  5. Ясные визуальные маркеры покупки/продажи облегчают анализ и обратное тестирование

Стратегические риски

  1. Может генерировать чрезмерные ложные сигналы прорыва на различных рынках
  2. EMA как отстающий показатель может привести к задержке сроков вступления
  3. Фиксированные мультипликаторы ATR для остановок могут быть недостаточно гибкими в периоды высокой волатильности
  4. Требуется более длинные исторические данные для расчетов показателей
  5. Оптимизация параметров может привести к перенастройке

Направления оптимизации стратегии

  1. Включить подтверждение объема для повышения надежности выхода
  2. Внедрение динамических мультипликаторов ATR для адаптации к различным состояниям волатильности рынка
  3. Добавление фильтров рыночной среды для предотвращения торговли при неблагоприятных условиях
  4. Оптимизировать логику фильтрации сигнала для дальнейшего снижения ложных сигналов
  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)


Связанные

Больше