Стратегия выхода из двойного Дончианского канала

Автор:Чао Чжан, Дата: 2024-02-21 11:38:48
Тэги:

img

Обзор

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

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

Стратегия двойного прорыва из Дончианского канала основана на двух параметрах:Период медленного Дончианского каналаиПериод быстрого Дончианского каналаСтратегия сначала рассчитывает верхнюю и нижнюю полосы двух Дончианских каналов.

  • По умолчанию медленный период каналов Донча составляет 50 бар, что отражает долгосрочные тенденции.
  • По умолчанию период быстрого Дончианского канала составляет 30 бар, что отражает более краткосрочные изменения тренда.

Сигнал длинного входапрорыв над верхней полосойсволатильность выше порогового значенияСигнал короткого входаразбивка ниже нижней полосысволатильность выше порогового значения.

Сигнал выхода длинного стоп-лоссаразбивка ниже нижней полосыСигнал выхода с короткой остановкой - этопрорыв над верхней полосой.

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

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

Стратегия двойного прорыва в канале Дончиан имеет следующие преимущества:

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

  2. Условие волатильности позволяет избегать частой торговли на рынках с ограниченным диапазоном.

  3. Всеобъемлющие настройки сбора прибыли и остановки убытков блокируют частичную прибыль и уменьшают убытки.

  4. Простая и понятная логика стратегии, легко понятная и реализуемая.

  5. Настраиваемые параметры подходят для различных продуктов и торговых предпочтений.

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

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

  1. Дизайн двойного канала чувствителен и может генерировать ложные сигналы. Более широкие каналы или регулируемые параметры волатильности могут уменьшить ложные сигналы.

  2. На волатильных рынках стоп-лосс может запускаться слишком часто.

  3. Фиксированный процент получения прибыли не позволяет максимизировать прибыль.

  4. Реальная эффективность торговли может отличаться от ожиданий от обратного теста. Требует тщательной проверки и корректировки параметров при необходимости.

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

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

  1. Проверьте больше комбинаций периодов, чтобы найти оптимальные параметры.

  2. Попробуйте различные показатели волатильности, такие как ATR, чтобы найти наиболее стабильный показатель.

  3. Установите ограничение на количество записей, чтобы избежать потерь в конце тренда.

  4. Попробуйте динамическую прибыль, чтобы получить более высокую прибыль.

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

  6. Оптимизируйте модели управления деньгами, такие как фиксированное размеры позиций для лучшего контроля рисков.

Заключение

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


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
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/
// © omererkan

//@version=5
strategy(title="Double Donchian Channel Breakout", overlay=true, initial_capital = 1000, commission_value = 0.05, default_qty_value = 100, default_qty_type = strategy.percent_of_equity)

// Donchian Channels
slowLen = input.int(50, title="Slow Donchian", group = "Conditions")
fastLen = input.int(30, title="Fast Donchian", group = "Conditions")

// Volatility Calculated as a percentage
volatility = input.int(3, title="Volatility (%)", group = "Conditions")

// Long positions
long = input.bool(true, "Long Position On/Off", group = "Strategy")
longProfitPerc = input.float(2, title="Long TP1 (%)", group = "Strategy", minval=0.0, step=0.1) * 0.01

// Short positions
short = input.bool(true, "Short Position On/Off", group = "Strategy")
shortProfitPerc = input.float(2, title="Short TP1 (%)", group = "Strategy", minval=0.0, step=0.1) * 0.01

// First take profit point for positions
TP1Yuzde =input.int(50, title = "TP1 Position Amount (%)", group = "Strategy")

// Slow Donchian Calculated
ubSlow = ta.highest(high, slowLen)[1]
lbSlow = ta.lowest(low, slowLen)[1]

// Fast Donchian Calculated
ubFast = ta.highest(high, fastLen)[1]
lbFast = ta.lowest(low, fastLen)[1]

// Plot Donchian Channel for entries
plot(ubSlow, color=color.green, linewidth=2, title="Slow DoCh - Upperband")
plot(lbSlow, color=color.green, linewidth=2, title="Slow DoCh - Lowerband")
plot(ubFast, color=color.blue, linewidth=2, title="Fast DoCh - Upperband")
plot(lbFast, color=color.blue, linewidth=2, title="Fast DoCh - Lowerband")

// This calculation, the strategy does not open position in the horizontal market.
fark = (ubSlow - lbSlow) / lbSlow * 100

// Take profit levels
longExitPrice  = strategy.position_avg_price * (1 + longProfitPerc)
shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc)

// Code long trading conditions
longCondition = ta.crossover(close, ubSlow) and fark > volatility
if longCondition and long == true
    strategy.entry("Long", strategy.long)

// Code short trading conditions
shortCondition = ta.crossunder(close, lbSlow) and fark > volatility
if shortCondition and short == true
    strategy.entry("Short", strategy.short)

// Determine long trading conditions
if strategy.position_size > 0 and ta.crossunder(close, lbFast) 
    strategy.close_all("Close All")

// Determine short trading conditions
if strategy.position_size < 0 and ta.crossover(close, ubFast)
    strategy.close_all("Close All")

// Take Profit Long
if strategy.position_size > 0
    strategy.exit("TP1", "Long", qty_percent = TP1Yuzde, limit = longExitPrice)

// Take Profit Short
if strategy.position_size < 0
    strategy.exit("TP1", "Short", qty_percent = TP1Yuzde, limit = shortExitPrice)

Больше