Стратегия движения по Дончианскому каналу

Автор:Чао Чжан, Дата: 2024-02-26 17:31:45
Тэги:

img

Обзор

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

Логика стратегии

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

Стратегия сначала рассчитывает 20-дневный Дончианский канал, включая верхнюю полосу, нижнюю полосу и среднюю полосу. Затем проверяется, пробивается ли цена через полосы канала. Если цена закрытия превышает 200-дневную скользящую среднюю и цена закрытия превышает верхнюю полосу, генерируется длинный сигнал. Если цена закрытия превышает 200-дневную скользящую среднюю и цена закрытия превышает нижнюю полосу, генерируется короткий сигнал.

После входа в длинные позиции, стоп-лосс устанавливается на нижней полосе.

Анализ преимуществ

Стратегия имеет следующие преимущества:

  1. Он может эффективно определить направления тренда на рынке.

  2. В сочетании с длительным скользящим средним показателем помогает эффективно отфильтровывать ложные сигналы.

  3. Установка стоп-лосса в диапазоне каналов позволяет быстро выйти и эффективно контролировать риск.

  4. Логика стратегии проста и понятна, легко понять и реализовать.

Анализ рисков

Стратегия также сопряжена с некоторыми рисками:

  1. Риск реверсии тренда.

  2. Риск оптимизации параметров. Параметры Donchian Channel нуждаются в постоянном тестировании и оптимизации, в противном случае это может повлиять на эффективность стратегии.

  3. Чрезмерный риск частоты торговли. Дончианский канал имеет тенденцию генерировать более частые торговые сигналы.

Руководство по оптимизации

Стратегия может быть оптимизирована в следующих аспектах:

  1. Добавить больше показателей для фильтрации сигналов, например, моделей свечей, показателей волатильности и т.д., чтобы избежать ложных сигналов.

  2. Оптимизируйте параметры, такие как длина канала, чтобы найти оптимальную комбинацию параметров.

  3. Принять адаптивный метод стоп-лосса в соответствии с волатильностью рынка и потребностями контроля рисков.

  4. Классификация сигналов и принятие различных уровней стоп-лосса для различения сильных и слабых сигналов.

Заключение

В целом, стратегия движения тренда на канале Дончиан является относительно простой и практичной стратегией следования тренду. Она может эффективно идентифицировать направления тренда на рынке и улавливать большинство движений тренда. Между тем, длительные скользящие средние и полосы каналов стоп-лосса помогают контролировать риски. Стратегия имеет большое пространство для оптимизации в таких аспектах, как настройка параметров, фильтрация сигнала и методы стоп-лосса и т. Д., Чтобы достичь лучшей производительности.


/*backtest
start: 2024-01-26 00:00:00
end: 2024-02-16 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © pratyush_trades

//@version=4
strategy("Donchian Channel Strategy", overlay=true)

length = input(20)
longRule = input("Higher High", "Long Entry", options=["Higher High", "Basis"])
shortRule = input("Lower Low", "Short Entry", options=["Lower Low", "Basis"])

hh = highest(high, length)
ll = lowest(low, length)

up = plot(hh, 'Upper Band', color = color.green)
dw = plot(ll, 'Lower Band', color = color.red)
mid = (hh + ll) / 2
midPlot = plot(mid, 'Basis', color = color.orange)
fill(up, midPlot, color=color.green, transp = 95)
fill(dw, midPlot, color=color.red, transp = 95)

if (close>ema(close,200))
    if (not na(close[length]))
        strategy.entry("Long", strategy.long, stop=longRule=='Basis' ? mid : hh)

if (close<ema(close,200))
    if (not na(close[length]))
        strategy.entry("Short", strategy.short, stop=shortRule=='Basis' ? mid : ll)

if (strategy.position_size>0)
    strategy.exit(id="Longs Exit",stop=ll)

if (strategy.position_size<0)
    strategy.exit(id="Shorts Exit",stop=hh)

Больше