Многопериодный индикатор Дончиана, следующая за трендом и стратегия торговли по дивергенции

DC MA Trend momentum volatility SIGNAL
Дата создания: 2025-02-21 10:38:06 Последнее изменение: 2025-02-21 10:38:06
Копировать: 0 Количество просмотров: 448
2
Подписаться
319
Подписчики

Многопериодный индикатор Дончиана, следующая за трендом и стратегия торговли по дивергенции Многопериодный индикатор Дончиана, следующая за трендом и стратегия торговли по дивергенции

Обзор

Эта стратегия основана на показателях тончайского канала с несколькими циклами для построения системы отслеживания тенденций. Анализируя прорывы тончайского канала в разные периоды времени, в сочетании с основными тенденциями и локальными тенденциями, формируется визуально интуитивно понятный график трендовых полос.

Стратегический принцип

В основе стратегии лежит определение трендов на основе показателей Доньчжанского канала. Доньчжанский канал состоит из каналов наивысшей цены и каналов наименьшей цены, и тенденции определяются путем сравнения текущей цены с отношением позиций каналов.

  1. Основные тенденции: использование 20-циклического коридора Дончжана, когда цены, прорывающиеся вверх, формируют восходящую тенденцию, а, прорывая вниз, формируют нисходящую тенденцию
  2. Определение локальных тенденций: в рамках основных тенденций, используя более короткий цикл тонцзянского канала, определяется направление локальных тенденций
  3. Трендовые полосы: формируются через комбинацию 10 различных циклов, цвета более или менее отражают интенсивность тренда
  4. Торговые сигналы: основной тренд вверх, открытие дополнительных ордеров, основной тренд вниз, открытие пустых ордеров, обратный тренд, когда позиции находятся в убытке

Стратегические преимущества

  1. Объективное суждение о тренде: суждение о тренде, основанном на ценовом прорыве, избегая искажений, вызванных субъективным суждением
  2. Многоциклическое подтверждение: повышение точности определения тенденций путем наложения различных циклических тенденций
  3. Визуальные эффекты интуитивно: цветные изменения в полосе тренда интуитивно показывают состояние рынка
  4. Ясные правила торговли: четкие сигналы входа и выхода для программирования
  5. Эластичность: параметры оптимизации стратегии могут быть скорректированы в зависимости от особенностей торговой разновидности

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

  1. Риск обратного тренда: возможен более крупный отход в точке перехода
  2. Не применяется для рынка колебаний: колебания поперечных дисков могут создавать ложные сигналы
  3. Чувствительность параметров: различные параметры могут существенно повлиять на эффективность стратегии
  4. Влияние скольжения: частые сделки могут быть скольжены
  5. Системный риск: рыночные сбои могут привести к значительным потерям

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

  1. Увеличение фильтрации силы тренда: введение индикаторов силы тренда, таких как ADX, фильтрация сигналов слабого тренда
  2. Оптимизированная стоп-настройка: динамическая коррекция стоп-позиции на основе ATR для повышения возможности управления рисками
  3. Добавление подтверждения количества сделок: комбинированный анализ количества сделок для проверки эффективности тенденции
  4. Введение адаптации к волатильности: параметры для динамической корректировки волатильности рынка
  5. Усовершенствование управления позициями: динамическая корректировка размеров позиций на основе силы тренда

Подвести итог

Стратегия использует инновационное применение многоциклических каналов Тунцзяна для создания выделенной визуально и логически четкой системы отслеживания трендов. Основная преимущество стратегии заключается в том, что она визуализирует сложный процесс анализа трендов, что позволяет трейдерам визуально понимать движение рынка. Благодаря разумной оптимизации параметров и мерам контроля риска, стратегия имеет хорошую ценность для реальных применений.

Исходный код стратегии
/*backtest
start: 2024-06-12 00:00:00
end: 2025-02-19 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("Donchian Trend Ribbon Strategy", shorttitle="DonchianTrendRibbonStrat", overlay=true, precision=0)

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Parameters
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dlen = input.int(defval=20, title="Donchian Channel Period", minval=10)

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Helper function to determine color
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
f_color(mainTrend, localTrend) =>
    // mainTrend = 1 => uptrend, -1 => downtrend
    // localTrend = 1 => local uptrend, -1 => local downtrend
    // Return color based on whether local trend aligns with the main trend
    color c = na
    if mainTrend == 1
        c := localTrend == 1 ? color.new(color.lime, 0) : color.new(color.lime, 60)
    else if mainTrend == -1
        c := localTrend == -1 ? color.new(color.red, 0) : color.new(color.red, 60)
    else
        c := na
    c

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Function dchannel - determines main trend (1 or -1)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dchannel(len) =>
    float hh = ta.highest(len)
    float ll = ta.lowest(len)
    var int tr = 0
    tr := close > hh[1] ? 1 : close < ll[1] ? -1 : nz(tr[1])

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Function dchannelalt - determines local trend and returns color
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dchannelalt(len, maintrend) =>
    float hh = ta.highest(len)
    float ll = ta.lowest(len)
    var int tr = 0
    tr := close > hh[1] ? 1 : close < ll[1] ? -1 : nz(tr[1])
    f_color(maintrend, tr)

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Calculate main trend
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
maintrend = dchannel(dlen)

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Plotting the Donchian Trend Ribbon
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
plot( 5,  color=dchannelalt(dlen - 0, maintrend),  style=plot.style_columns, histbase= 0)
plot(10, color=dchannelalt(dlen - 1, maintrend),   style=plot.style_columns, histbase= 5)
plot(15, color=dchannelalt(dlen - 2, maintrend),   style=plot.style_columns, histbase=10)
plot(20, color=dchannelalt(dlen - 3, maintrend),   style=plot.style_columns, histbase=15)
plot(25, color=dchannelalt(dlen - 4, maintrend),   style=plot.style_columns, histbase=20)
plot(30, color=dchannelalt(dlen - 5, maintrend),   style=plot.style_columns, histbase=25)
plot(35, color=dchannelalt(dlen - 6, maintrend),   style=plot.style_columns, histbase=30)
plot(40, color=dchannelalt(dlen - 7, maintrend),   style=plot.style_columns, histbase=35)
plot(45, color=dchannelalt(dlen - 8, maintrend),   style=plot.style_columns, histbase=40)
plot(50, color=dchannelalt(dlen - 9, maintrend),   style=plot.style_columns, histbase=45)

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Trading Logic (STRATEGY)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bool goLong  = (maintrend == 1)
bool goShort = (maintrend == -1)

// Entry signals
if goLong
    strategy.entry("Long", strategy.long)

if goShort
    strategy.entry("Short", strategy.short)

// Close positions when trend changes
if strategy.position_size > 0 and goShort
    strategy.close("Long")

if strategy.position_size < 0 and goLong
    strategy.close("Short")