Estratégia de acompanhamento de tendências do canal Donchian


Data de criação: 2023-11-06 15:52:56 última modificação: 2023-11-06 15:52:56
cópia: 0 Cliques: 801
1
focar em
1617
Seguidores

Estratégia de acompanhamento de tendências do canal Donchian

Visão geral

A estratégia de acompanhamento de tendências do canal de Dongguan é uma estratégia de acompanhamento de tendências baseada no indicador do canal de Dongguan. A estratégia determina a direção da tendência do mercado, realizando negociações de acompanhamento de tendências, calculando os preços mais altos e mais baixos dos diferentes períodos, formando trajectórias superiores, inferiores e médias.

Princípio da estratégia

A estratégia define primeiro o intervalo de tempo de retorno e, em seguida, define as regras de abertura de posições a mais e a menos.

Para os ativos, quando o preço atravessa o trajeto ascendente do canal de Dongjian, o acionamento é realizado; quando o preço desce o trajeto descendente, o acionamento é realizado.

Para a posição em aberto, quando o preço atravessa o baixo trajeto do canal de Dongjian, é feita a abertura de posição em aberto; quando o preço se rompe na trajetória superior, é feita a abertura de posição em aberto.

A estratégia também introduziu o indicador ATR para configurar o mecanismo de parada de perda. O valor do ATR é multiplicado por um fator como ponto de parada.

Especificamente, o stop loss multiplo é o preço de abertura da posição menos o stop loss ATR; o stop loss vazio é o preço de abertura da posição mais o stop loss ATR.

A estratégia traça simultaneamente os trajectos de ascensão e descensão do canal de Tongxian, bem como a linha de stop loss do ATR, formando um sistema de negociação completo.

Vantagens estratégicas

  • O uso do canal de Tongxian para determinar a direção da tendência, com uma certa capacidade de rastreamento de tendências.

  • Os parâmetros do Smoother do canal Dongjian são ajustáveis e podem ser encontrados através da otimização de parâmetros para encontrar a melhor combinação de parâmetros.

  • A combinação dos indicadores ATR com o mecanismo de parada de perdas permite um controle eficaz do risco.

  • As regras de negociação multi-head são claras e fáceis de entender, adequadas para o aprendizado inicial.

  • A estrutura do código é clara, fácil de entender e reutilizar.

Risco estratégico

  • O Corredor de Tongxian tem um certo risco de transações erradas para oscilações de preços dentro do intervalo de liquidação.

  • A configuração incorreta do ATR pode fazer com que o ATR seja muito amplo ou muito sensível.

  • As posições em ativos ativos podem ser excessivamente concentradas e exigem regras de gerenciamento de posições.

  • É necessário verificar a adequação das variedades de transação, e os parâmetros de diferentes variedades precisam ser otimizados independentemente.

  • Os custos de transação também precisam ser levados em consideração, e precisam ser ajustados em um ambiente de altos custos.

Direção de otimização da estratégia

  • Otimizar os parâmetros de ciclo de corredor do corredor de Dongjian, procurando a melhor combinação de parâmetros.

  • Tente diferentes configurações de ATR para encontrar o melhor limite de perda.

  • Tente bloquear os lucros com a introdução de um stop móvel com base no ATR.

  • Ajustar adequadamente a proporção de posições de mais cabeças vazias de acordo com a situação do mercado.

  • Teste a robustez de parâmetros de diferentes variedades, procurando combinações de parâmetros gerais.

  • A introdução de filtros, como o indicador de forquilha, foi estudada para melhorar a estabilidade da estratégia.

  • Adaptabilidade de parâmetros de teste em diferentes ambientes de custos de transação.

Resumir

Em resumo, a estratégia como um todo é uma estratégia de acompanhamento de tendências mais simples, centrada na aplicação do canal de Dongguan. A vantagem da estratégia é que é simples e fácil de entender, adequada para o aprendizado, mas ainda precisa ser otimizada para os parâmetros e riscos.

Código-fonte da estratégia
/*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)