Estratégia de condução de tendência do canal de Donchian

Autora:ChaoZhang, Data: 2024-02-26 17:31:45
Tags:

img

Resumo

A estratégia de corrida de tendência do canal de Donchian é uma estratégia de tendência. Ele usa o canal de Donchian para identificar a direção da tendência do mercado e entra no mercado quando um sinal de tendência é gerado para capturar o maior número possível do movimento da tendência. Enquanto isso, ele incorpora média móvel de longo período para filtrar falsos sinais.

Estratégia lógica

A estratégia é baseada principalmente no canal de Donchian. O canal de Donchian consiste de uma banda superior, uma banda inferior e uma banda média. A banda superior é a maior alta nos últimos n dias, a banda inferior é a menor baixa nos últimos n dias, e a banda média é a média das bandas superior e inferior. Um sinal de compra é gerado quando o preço quebra acima da banda superior. Um sinal de venda é gerado quando o preço quebra abaixo da banda inferior.

A estratégia primeiro calcula o canal de Donchian de 20 dias, incluindo a faixa superior, a faixa inferior e a faixa média. Em seguida, verifica se o preço quebra as faixas do canal. Se o preço de fechamento quebra acima da média móvel de 200 dias E o preço de fechamento quebra acima da faixa superior, um sinal longo é gerado. Se o preço de fechamento quebra abaixo da média móvel de 200 dias E o preço de fechamento quebra abaixo da faixa inferior, um sinal curto é gerado.

Após entrar em posições longas, o stop loss é definido na faixa inferior.

Análise das vantagens

A estratégia apresenta as seguintes vantagens:

  1. O canal Donchian torna a identificação da tendência clara.

  2. A combinação com a média móvel de longo período ajuda a filtrar sinais falsos de forma eficaz.

  3. A definição de stop loss nas bandas de canais permite uma saída rápida e um controlo eficaz do risco.

  4. A lógica estratégica é simples e clara, fácil de compreender e implementar.

Análise de riscos

A estratégia apresenta também alguns riscos:

  1. Risco de inversão de tendência Uma inversão súbita de tendência pode causar grandes perdas.

  2. Risco de otimização de parâmetros: os parâmetros do canal Donchian precisam de testes e otimização constantes, caso contrário, podem afetar o desempenho da estratégia.

  3. Risco excessivo de frequência de negociação.

Orientações de otimização

A estratégia pode ser otimizada nos seguintes aspectos:

  1. Adicionar mais indicadores para filtragem de sinais, por exemplo padrões de velas, indicadores de volatilidade, etc., para evitar falsos sinais.

  2. Optimização de parâmetros: otimizar parâmetros como o comprimento do canal para encontrar a combinação ideal de parâmetros.

  3. Adotar um método de stop loss adaptativo de acordo com a volatilidade do mercado e as necessidades de controlo do risco.

  4. Classificar os sinais e adotar diferentes níveis de stop loss para diferenciar os sinais fortes e fracos.

Conclusão

Em geral, a Estratégia de Condução de Tendência do Canal Donchian é uma estratégia de tendência relativamente simples e prática. Ela pode identificar efetivamente as direções de tendência do mercado e capturar a maioria dos movimentos da tendência. Enquanto isso, a média móvel de longo período e as bandas de stop loss do canal ajudam a controlar os riscos. A estratégia tem grande espaço para otimização em aspectos como ajuste de parâmetros, filtragem de sinal e métodos de stop loss, etc., a fim de alcançar um melhor desempenho.


/*backtest
start: 2024-01-26 00:00:00
end: 2024-02-16 00:00:00
period: 1h
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/
// © pratyush_trades

//@version=4
strategy("Donchian Channel Strategy", overlay=true)

length = input(20)
longRule = input("Higher High", "Long Entry", options=["Higher High", "Basis"])
shortRule = input("Lower Low", "Short Entry", options=["Lower Low", "Basis"])

hh = highest(high, length)
ll = lowest(low, length)

up = plot(hh, 'Upper Band', color = color.green)
dw = plot(ll, 'Lower Band', color = color.red)
mid = (hh + ll) / 2
midPlot = plot(mid, 'Basis', color = color.orange)
fill(up, midPlot, color=color.green, transp = 95)
fill(dw, midPlot, color=color.red, transp = 95)

if (close>ema(close,200))
    if (not na(close[length]))
        strategy.entry("Long", strategy.long, stop=longRule=='Basis' ? mid : hh)

if (close<ema(close,200))
    if (not na(close[length]))
        strategy.entry("Short", strategy.short, stop=shortRule=='Basis' ? mid : ll)

if (strategy.position_size>0)
    strategy.exit(id="Longs Exit",stop=ll)

if (strategy.position_size<0)
    strategy.exit(id="Shorts Exit",stop=hh)

Mais.