Стратегия отслеживания трендов на Дончианском канале - это стратегия отслеживания трендов, основанная на индикаторе Дончианского канала.
Стратегия сначала устанавливает временной диапазон обратного тестирования, а затем определяет длинные и короткие правила входа.
Для длинных позиций открыть длинную позицию, когда цена превышает верхнюю полосу Донкского канала; закрыть длинную позицию, когда цена превышает нижнюю полосу.
Для коротких позиций открывать короткие позиции, когда цена проходит ниже нижней полосы Дончианского канала; закрывать короткие позиции, когда цена проходит выше верхней полосы.
Стратегия также включает в себя индикатор ATR для установки механизма выхода стоп-лосса.
В частности, длинный стоп-лосс - это цена входа минус значение стоп-лосса ATR; короткий стоп-лосс - это цена входа плюс значение стоп-лосса ATR.
В стратегии также отображаются верхние и нижние полосы Дончианского канала и линия остановки ATR, чтобы сформировать полную торговую систему.
Используйте канал Дончиана для определения направления тренда, с некоторыми возможностями отслеживания тренда.
Параметр гладкого канала Донкиа регулируется, что позволяет оптимизировать параметры для поиска лучшей комбинации параметров.
Механизм стоп-лосса с ATR может эффективно контролировать риски.
Длинные и короткие правила торговли просты и понятны, подходят для начинающих.
Структура кода ясна и легко понять и изменить.
В Дончианском канале могут быть некоторые торговые сделки во время колебаний цен в диапазоне.
Неправильное установление диапазона остановочных потерь ATR может привести к слишком широкому или слишком чувствительному остановочным потерям.
Долгие и короткие позиции могут быть слишком концентрированы, что требует правил размещения позиций.
Стратегия должна быть протестирована на предмет применимости к различным продуктам с независимой оптимизацией параметров.
Необходимо также учитывать затраты на торговлю, параметры могут нуждаться в корректировке в условиях высокой стоимости.
Оптимизируйте параметры периода Дончианского канала, чтобы найти лучшую комбинацию параметров.
Попробуйте различные коэффициенты ATR, чтобы найти оптимальный диапазон стоп-потери.
Попробуйте ввести отслеживание стоп-лосса на вершине ATR стоп-лосса, чтобы зафиксировать прибыль.
Корректировка коэффициента длинной/короткой позиции на основе рыночных условий.
Испытать прочность параметров на различных продуктах для поиска общих параметров.
Исследование, включающее MACD и другие фильтры для улучшения стабильности.
Испытать адаптивность параметров в различных условиях стоимости торговли.
В общем, это относительно простая стратегия отслеживания трендов, которая сосредоточена на применении Дончианского канала. Преимущество заключается в ее простоте и простоте понимания, что делает ее подходящей для учебных целей, но параметры и риски все еще нуждаются в дальнейшей оптимизации.
/*backtest start: 2022-10-30 00:00:00 end: 2023-11-05 00:00:00 period: 1d basePeriod: 1h 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/ // © kriswaters //@version=4 strategy("Donchian Channels Strategy by KrisWaters", overlay=true ) // Date filter FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromYear = input(defval = 2017, title = "From Year", minval = 1900) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToYear = input(defval = 9999, title = "To Year", minval = 2017) start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window window() => true // create function "within window of time" // Strategy Settings canEnterLong = input(true, title="Can Enter Long Position") canEnterShort = input(false, title="Can Enter Short Position") showLongChannel = input(true, title="Show Donchian Long Channels") showShortChannel = input(false , title="Show Donchian Short Channels") useAtrAsStopRule = input(false, title="Enable ATR Stop Rule") // DonCcian Channel Lengths longUpperLength = input(20, minval=1) longLowerLength = input(10, minval=1) shortUpperLength = input(10, minval=1) shortLowerLength = input(20, minval=1) // Donchian indicator calculations longUpperValue = highest(high,longUpperLength) longLowerValue = lowest(low,longLowerLength) shortUpperValue = highest(high,shortUpperLength) shortLowerValue = lowest(low,shortLowerLength) // Plot Donchian Channels uLong = plot(showLongChannel ? longUpperValue : na, color=color.green, offset=1) lLong = plot(showLongChannel ? longLowerValue : na, color=color.green, offset=1) uShort = plot(showShortChannel ? shortUpperValue : na, color=color.red, offset=1) lShort = plot(showShortChannel ? shortLowerValue : na, color=color.red, offset=1) // Styling fill(uLong,lLong, color=color.green, transp=95, title="Long Arkaplan") fill(uShort,lShort, color=color.red, transp=95, title="Short Arkaplan") // Stop-loss value calculations atrMultiplier = 2.0 atrValue = atr(20) longStopValue = open - (atrMultiplier*atrValue) shortStopValue = open + (atrMultiplier*atrValue) // Plot stop-loss line plot(useAtrAsStopRule ? longStopValue : na, color=color.red, linewidth=2, offset=1) plot(useAtrAsStopRule ? shortStopValue : na, color=color.red, linewidth=2, offset=1) // Long and Short Position Rules if canEnterLong and na(longUpperValue) != true and na(longLowerValue) != true and window() strategy.entry("Long", true, stop=longUpperValue) strategy.exit("Long Exit", "Long", stop=useAtrAsStopRule ? max(longLowerValue,longStopValue) : longLowerValue) if canEnterShort and na(shortUpperValue) != true and na(shortLowerValue) != true and window() strategy.entry("Short", false, stop=shortLowerValue) strategy.exit("Short Exit", "Short", stop=useAtrAsStopRule ? min(shortUpperValue,shortStopValue) : shortUpperValue)