
Динамическая стратегия прорыва каналов - это стратегия отслеживания тенденций. Она использует индикатор каналов Дончиана для динамического определения цен на покупку и продажу, в сочетании с индикатором ATR для установления стоп-стоп, для полного автоматизации генерации торговых сигналов и стоп-стоп-выхода.
Дончианский канал - динамический канал, который формирует верхний и нижний отрезки, рассчитывая максимальные и минимальные цены за прошедшие определенные периоды. Верхний отрезк представляет собой максимальные цены за прошедшие n циклов, а нижний - минимальные цены за прошедшие n циклов. Дончианский канал отражает диапазон колебаний и потенциальные тенденции рынка.
Эта стратегия устанавливает Donchian channel с 20-дневным циклом. Когда цена прорывается вверх, она создает сигнал покупки, показывающий, что она входит в восходящую тенденцию; когда цена падает вниз, она создает сигнал продажи, показывающий, что она входит в нисходящую тенденцию.
Индекс ATR является аббревиатурой для Average True Range, который отражает среднюю частоту колебаний в активе за последнее время. ATR может автоматически адаптироваться к изменению частоты колебаний рынка, что позволяет более точно отражать реальные колебания рынка за последнее время.
Эта стратегия использует 20-дневный ATR для расчета стоп-лосса. Чем больше ATR, тем больше рыночная волатильность, и тем дальше от установленной стоп-лосса. Это может предотвратить слишком близкую стоп-лосса, которая может быть ударена небольшими рыночными волатильностями.
Когда цены выше пересекают среднюю линию Дончианского канала, создается сигнал покупки; когда цены ниже пересекают среднюю линию Дончианского канала, создается сигнал продажи. Это указывает на то, что цена начинает прорыв в этом канале и вступает в новый раунд тренда.
В то же время, в сочетании с точкой остановки, рассчитанной по показателю ATR, при достижении точки остановки активная остановка выходит из позиции, контролируя риск.
Дончианский канал - это индикатор трендового отслеживания. Данная стратегия позволяет автоматически отслеживать изменения в рыночных тенденциях путем динамического регулирования диапазона каналов, что приводит к появлению сигналов покупки и продажи. Это позволяет избежать субъективности искусственного суждения, что делает генерирование торговых сигналов более объективным и надежным.
Стратегия включает в себя одновременно правила оптового и дискортового торговли, что позволяет осуществлять двустороннюю торговлю. Это расширяет рыночную среду, в которой применяется стратегия, и позволяет получать прибыль как при повышении, так и при падении.
Стоп-лосс в сочетании с показателем ATR позволяет эффективно контролировать убытки по отдельным сделкам. Это особенно важно для количественных сделок, которые гарантируют стабильную положительную прибыль стратегии при высокой вероятности событий.
Существует определенный риск покрытия при использовании стратегии Дончианского канала. Когда цена переворачивается и вновь входит в канал, существенные потери могут возникнуть, если не остановить убытки. Эта стратегия снижает этот риск с помощью механизма остановки убытков показателя ATR.
При реверсии тренда Donchian Channel Indicator может создавать ошибочный сигнал. Пользователи должны следить за ситуацией на рынке, чтобы избежать слепого следования, когда наступает заметное изменение тренда. Эта стратегия может включать индикаторы определения тренда и т. Д., чтобы уменьшить этот риск.
Периодические параметры Donchian channel и ATR stop требуют оптимизации, иначе будет создано слишком много ошибочных сигналов. В этой стратегии используются экспериментальные параметры, в реальном диапазоне параметры должны быть оптимизированы на основе исторических данных.
Можно использовать такие индикаторы, как движущиеся средние, чтобы избежать ошибочных сигналов при значительных переломах тенденции.
Оптимизация Donchian channel и ATR параметров, чтобы найти оптимальную комбинацию параметров. Сокращение циклов каналов позволяет быстрее улавливать перемены тенденции.
В сочетании с другими вспомогательными показателями суждения, такими как форма K-линий, изменение объема сделки и т. д., можно повысить точность сигнала и уменьшить ненужные обратные сделки.
Стратегия прорыва динамического канала определяет направление тренда и генерирует торговый сигнал через восходящий и нисходящий рельсы Дончианского канала. Стратегия имеет высокую степень автоматизации и подходит для количественной торговли.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title = "dc", overlay = true)
atrLength = input(title="ATR Length:", defval=20, minval=1)
testStartYear = input(2018, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testEndYear = input(2018, "Backtest Start Year")
testEndMonth = input(12)
testEndDay = input(31, "Backtest Start Day")
testPeriodEnd = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testPeriod() =>
true
//time >= testPeriodStart ? true : false
dcPeriod = input(20, "Period")
dcUpper = highest(close, dcPeriod)[1]
dcLower = lowest(close, dcPeriod)[1]
dcAverage = (dcUpper + dcLower) / 2
atrValue=atr(atrLength)
useTakeProfit = na
useStopLoss = na
useTrailStop = na
useTrailOffset = na
Buy_stop = lowest(low[1],3) - atr(20)[1] / 3
plot(Buy_stop, color=red, title="buy_stoploss")
Sell_stop = highest(high[1],3) + atr(20)[1] / 3
plot(Sell_stop, color=green, title="sell_stoploss")
plot(dcLower, style=line, linewidth=3, color=red, offset=1)
plot(dcUpper, style=line, linewidth=3, color=aqua, offset=1)
plot(dcAverage, color=yellow, style=line, linewidth=3, title="Mid-Line Average")
strategy.entry("simpleBuy", strategy.long, when=(close > dcAverage) and cross(close,dcAverage))
strategy.close("simpleBuy",when=((close < dcAverage) and cross(close,dcAverage)) or ( close< Buy_stop))
strategy.entry("simpleSell", strategy.short,when=(close < dcAverage) and cross(close,dcAverage) )
strategy.close("simpleSell",when=((close > dcAverage) and cross(close,dcAverage)) or ( close > Sell_stop))
//strategy.exit("Exit simpleBuy", from_entry = "simpleBuy", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)
//strategy.exit("Exit simpleSell", from_entry = "simpleSell", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)