
Стратегия прорыва Дончинского канала - это стратегия отслеживания тенденций, основанная на ценовых каналах. Эта стратегия использует верхние, нижние и средние перемещающиеся средние линии в Дончинском канале для определения ценовых тенденций и прорывов, чтобы подавать сигналы покупки и продажи.
Эта стратегия начинается с вычисления цены в пределах определенного периода. Высокие и низкие цены образуют ценовой канал, средний средний ценовой канал находится в середине канала. Когда цена сверху прорывает среднюю линию, считается позитивным сигналом, чтобы сделать больше; когда цена сверху вниз, чтобы нарушить среднюю линию, считается сигналом понижения, чтобы сделать пустоту.
В частности, стратегия работает в следующих этапах:
Основные принципы торговли в стратегии. Определить тренд путем захвата цены, которая пробивается через канал, и, как следствие, переключить направление в ключевой точке.
Эта стратегия имеет следующие преимущества:
Однако эта стратегия также несет в себе некоторые риски:
Ответ:
Эта стратегия также может быть оптимизирована в следующих аспектах:
В целом, стратегию прорыва Дончи является эффективной стратегией отслеживания тенденций. Она имеет теоретическую основу, логически проста, определяет направление тенденции и отслеживает ее через ценовые каналы, чтобы поймать прибыль в тенденции. В то же время, эта стратегия, основанная на прорыве, также несет определенный риск, требуя оптимизации параметров и фильтрующих условий, чтобы сделать стратегию более стабильной и практичной.
/*backtest
start: 2024-01-26 00:00:00
end: 2024-02-25 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title = "dc", overlay = true)
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
plot(dcLower, style=line, linewidth=3, color=red, offset=1)
plot(dcUpper, style=line, linewidth=3, color=aqua, offset=1)
plot(dcAverage, color=black, style=line, linewidth=3, title="Mid-Line Average")
strategy.entry("simpleBuy", strategy.long, when=close > dcAverage)
strategy.close("simpleBuy",when=close < dcLower)
strategy.entry("simpleSell", strategy.short,when=close < dcAverage)
strategy.close("simpleSell",when=close > dcAverage)