Эта стратегия - это торговая система, которая сочетает в себе индикатор коралловой тенденции с Дончианским каналом. Точно захватывая рыночный импульс и предоставляя множество подтверждений прорывов тренда, она эффективно фильтрует ложные сигналы на колеблющихся рынках и улучшает точность торговли. Стратегия использует адаптивные средние скользящие методы, которые могут динамически регулировать параметры для поддержания стабильной производительности в различных рыночных условиях.
Основная логика основана на синергетическом эффекте двух основных показателей: Индикатор тренда кораллов: рассчитывает сглаженное значение (высокий + низкий + близкий) / 3 и сравнивает его с текущей ценой закрытия для определения направления тренда. 2. Дончианский канал: определяет, превышает ли цена ключевые уровни, рассчитывая самые высокие и самые низкие цены в течение определенного пользователем периода.
Система генерирует длинные сигналы, когда оба индикатора подтверждают восходящий тренд (coralTrendVal == 1 и donchianTrendVal == 1), и короткие сигналы, когда оба подтверждают нисходящий тренд (coralTrendVal == -1 и donchianTrendVal == -1). Стратегия использует машину состояния (trendState), чтобы отслеживать текущее состояние тренда и избегать дублирования сигналов.
Эта стратегия достигает надежной тенденции следующей системы через множество механизмов подтверждения тренда и гибкие параметры настройки. Ее адаптивные функции и четкая логика сигнала делают ее подходящей для различных торговых временных рамок и рыночных условий. Благодаря предложенным направлениям оптимизации есть место для дальнейшего улучшения эффективности стратегии. При применении к живой торговле рекомендуется включить меры управления рисками и оптимизировать параметры в соответствии с характеристиками конкретных торговых инструментов.
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-16 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy("Coral Tides Strategy", shorttitle="CoralTidesStrat", overlay=true) // === Inputs === dlen = input.int(defval=20, title="Donchian Channel Period", minval=10) coralPeriod = input.int(defval=14, title="Coral Trend Period") // === Functions === // Coral Trend Calculation coralTrend(period) => smooth = (high + low + close) / 3 coral = ta.ema(smooth, period) trend = 0 trend := close > coral ? 1 : close < coral ? -1 : trend[1] [trend, coral] // Donchian Trend Calculation donchianTrend(len) => hh = ta.highest(high, len) ll = ta.lowest(low, len) trend = 0 trend := close > hh[1] ? 1 : close < ll[1] ? -1 : trend[1] trend // === Trend Calculation === [coralTrendVal, coralLine] = coralTrend(coralPeriod) donchianTrendVal = donchianTrend(dlen) // === Signal Logic === var int trendState = 0 buySignal = false sellSignal = false if (coralTrendVal == 1 and donchianTrendVal == 1 and trendState != 1) buySignal := true sellSignal := false trendState := 1 else if (coralTrendVal == -1 and donchianTrendVal == -1 and trendState != -1) sellSignal := true buySignal := false trendState := -1 else buySignal := false sellSignal := false // === Strategy Execution === // Entry Signals if (buySignal) strategy.entry("Long", strategy.long) if (sellSignal) strategy.entry("Short", strategy.short) // === Plots === // Coral Trend Line plot(coralLine, color=color.green, linewidth=2, title="Coral Trend Line") // Buy/Sell Signal Labels if buySignal label.new(bar_index, low, "BUY", color=color.green, textcolor=color.white, style=label.style_label_down, size=size.normal) if sellSignal label.new(bar_index, high, "SELL", color=color.red, textcolor=color.white, style=label.style_label_up, size=size.normal)