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


Дата создания: 2024-02-21 11:38:48 Последнее изменение: 2024-02-21 11:38:48
Копировать: 0 Количество просмотров: 971
1
Подписаться
1617
Подписчики

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

Обзор

Dual Donchian Channel Breakout Strategy (Стратегия двойного прорыва Дончианского канала) - это стратегия прорыва, основанная на Дончианском канале. Она использует как быстрые, так и медленные два Дончианских канала для построения многообеменных и пустых торговых сигналов.

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

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

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

Сигналы входа многоголовые.Цены выходят на новый уровеньИ ещёВолатильность выше, чем обесценение│ │ │ │ │Цены вышли из колеиИ ещёВолатильность выше, чем обесценение

Сигнал многообещающего стоп-позиции - это возобновление цены.Прорыв вниз│ │ │ │ │ │ │Прорыв на рельсы

Политика была установлена одновременно сЗадержкаУсловия выхода. По умолчанию ставка на выручку составляет 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)