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


Дата создания: 2024-01-29 11:51:08 Последнее изменение: 2024-01-29 11:51:08
Копировать: 0 Количество просмотров: 718
1
Подписаться
1617
Подписчики

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

Обзор

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

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

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

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

Кроме того, в стратегии также установлена точка остановки. Стоп-стоп для многопозиционных позиций составляет пропорцию (-) + стоп-стоп к входной цене, а позиции на дисконте - наоборот. Включение этой функции позволяет блокировать прибыль, чтобы избежать расширения убытков.

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

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

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

  1. “Стратегические решения понятны, генерация сигналов проста и надежна.
  2. Индекс Донцзяна не чувствителен к колебаниям цен, что позволяет отслеживать тенденции.
  3. Настраиваемые параметры каналов для различных сортов и временных периодов.
  4. Встроенная система защиты от повреждений, которая позволяет эффективно контролировать риск.
  5. Применяется для высоко волатильных видов, таких как цифровые валюты, с высоким потенциалом прибыли.

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

Также существуют следующие риски:

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

Для борьбы с указанными рисками рекомендуется:

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

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

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

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

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

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

Исходный код стратегии
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 4h
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/
// © algotradingcc
// Strategy testing and optimisation for free trading bot 

//@version=4
strategy("Donchian Channel Strategy [for free bot]", overlay=true )

//Long optopns
buyPeriodEnter = input(10, "Channel Period for Long enter position")
buyPeriodExit = input(10, "Channel Period for Long exit position")
isMiddleBuy = input(true, "Is exit on Base Line? If 'no' - exit on bottom line")
takeProfitBuy = input(2.5, "Take Profit (%) for Long position")
isBuy = input(true, "Allow Long?")

//Short Options
sellPeriodEnter = input(20, "Channel Period for Short enter position")
sellPeriodExit = input(20, "Channel Period for Short exit position")
isMiddleSell = input(true, "Is exit on Base Line? If 'no' - exit on upper line")
takeProfitSell = input(2.5, "Take Profit (%) for Short position")
isSell = input(true, "Allow Short?")

// Test Start
startYear = input(2005, "Test Start Year")
startMonth = input(1, "Test Start Month")
startDay = input(1, "Test Start Day")
startTest = timestamp(startYear,startMonth,startDay,0,0)

//Test End
endYear = input(2050, "Test End Year")
endMonth = input(12, "Test End Month")
endDay = input(30, "Test End Day")
endTest = timestamp(endYear,endMonth,endDay,23,59)

timeRange = time > startTest and time < endTest ? true : false

// Long&Short Levels
BuyEnter = highest(buyPeriodEnter)
BuyExit = isMiddleBuy ? ((highest(buyPeriodExit) + lowest(buyPeriodExit)) / 2): lowest(buyPeriodExit)

SellEnter = lowest(sellPeriodEnter)
SellExit = isMiddleSell ? ((highest(sellPeriodExit) + lowest(sellPeriodExit)) / 2): highest(sellPeriodExit)

// Plot Data
plot(BuyEnter, style=plot.style_line, linewidth=2, color=color.blue, title="Buy Enter")
plot(BuyExit, style=plot.style_line, linewidth=1, color=color.blue, title="Buy Exit", transp=50)
plot(SellEnter, style=plot.style_line, linewidth=2, color=color.red, title="Sell Enter")
plot(SellExit, style=plot.style_line, linewidth=1, color=color.red, title="Sell Exit", transp=50)

// Calc Take Profits
TakeProfitBuy = 0.0
TakeProfitSell = 0.0
if strategy.position_size > 0
    TakeProfitBuy := strategy.position_avg_price*(1 + takeProfitBuy/100)
    
if strategy.position_size < 0
    TakeProfitSell := strategy.position_avg_price*(1 - takeProfitSell/100)

// Long Position    
if isBuy and timeRange
    strategy.entry("Long", strategy.long, stop = BuyEnter, when = strategy.position_size == 0) 
    
strategy.exit("Long Exit", "Long", stop=BuyExit, limit = TakeProfitBuy, when = strategy.position_size > 0)

// Short Position
if isSell and timeRange
    strategy.entry("Short", strategy.short, stop = SellEnter, when = strategy.position_size == 0) 
    
strategy.exit("Short Exit", "Short", stop=SellExit, limit = TakeProfitSell, when = strategy.position_size < 0)

// Close & Cancel when over End of the Test
if time > endTest
    strategy.close_all()
    strategy.cancel_all()