A estratégia de ruptura do canal de Donchian é uma estratégia de tendência baseada em canais de preços.
A estratégia primeiro calcula a média móvel da linha alta, baixa e média dos preços durante um determinado período. As bandas superior e inferior formam o canal de preços, enquanto a linha média fica no meio do canal. Quando o preço quebra acima da linha média, ele sinaliza uma tendência ascendente e vai longo. Quando o preço quebra abaixo da linha média, ele sinaliza uma tendência descendente e vai curto.
Em especial, a estratégia consiste nas seguintes etapas:
A lógica acima descreve o princípio básico de negociação da estratégia - capturar tendências por rupturas de preços e mudar de direção em pontos pivô.
A estratégia apresenta as seguintes vantagens:
Há também alguns riscos:
Soluções:
A estratégia pode ser ainda melhorada nos seguintes aspectos:
Em conclusão, a estratégia de breakout do canal Donchian é um sistema eficaz de seguimento de tendências, com base teórica sólida, lógica simples e capacidade de acompanhar tendências através de breakouts.
/*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)