Canal Donchian com Estratégia Trailing Stop


Data de criação: 2023-12-07 16:53:10 última modificação: 2023-12-07 16:53:10
cópia: 0 Cliques: 471
1
focar em
1214
Seguidores

Canal Donchian com Estratégia Trailing Stop

Visão geral

A estratégia é baseada na estratégia de acompanhamento de tendências do indicador do Canal de Tôquio, combinada com o stop loss dinâmico do indicador ATR para bloquear os lucros, pertencendo à classe de estratégia de acompanhamento de tendências.

Princípio da estratégia

A estratégia usa um indicador de corredor de Tangjian de 20 ciclos de comprimento, com a linha média do corredor como a média entre o preço mais alto e o preço mais baixo. Quando o preço sobe, ele atravessa a linha média do corredor, e quando o preço desce, ele se esconde. A condição de equilíbrio é que o preço toque a parada dinâmica.

Análise de vantagens

A estratégia tem as seguintes vantagens:

  1. O uso do canal de Dongxian para determinar a direção da tendência do mercado permite capturar a tendência de forma eficaz
  2. Combinado com o ATR, o tracking de stop loss dinâmico permite controlar o risco de forma eficaz, garantindo lucro.
  3. Adicionar o fator ATR ao cálculo da linha de parada, levando em consideração a volatilidade do mercado, faz com que a parada seja mais razoável
  4. O cálculo da linha de parada é mais estável e confiável, evitando que a parada fique muito próxima e reduzindo a probabilidade de que a parada seja processada

Análise de Riscos

A estratégia tem os seguintes riscos:

  1. O Don Quixote tem um certo atraso, e pode ter perdido a oportunidade de fazer uma linha curta.
  2. A configuração inadequada dos parâmetros ATR pode levar a um stop loss muito relaxado ou muito próximo
  3. O mecanismo de discernimento de tendências é relativamente simples, podendo ocorrer mais sinais errôneos no balanço do mercado.
  4. A falta de mecanismos eficazes de avaliação de suporte e resistência pode levar à escolha inadequada do momento de entrada no mercado.

Direção de otimização

A estratégia pode ser melhorada em vários aspectos:

  1. Adicionar outros indicadores de julgamento e evitar a negociação frequente em mercados sem tendências claras
  2. Aumentar o julgamento de resistência de suporte e otimizar o tempo de entrada
  3. Tentar outras formas dinâmicas de cálculo de stop loss para otimizar ainda mais a estratégia de stop loss
  4. Teste dos efeitos de diferentes parâmetros de ciclo de canal de Dongguan na eficácia da estratégia
  5. Adição de condições de filtragem, como volume de transação ou aumento, para reduzir a entrada de sinais errados

Resumir

A estratégia, como um todo, é uma estratégia de acompanhamento de tendências simples e práticas, que determina a direção da tendência através do canal de Tangjian e usa o stop loss dinâmico para bloquear os lucros. A estratégia é bastante prática, mas pode ser otimizada de várias maneiras, permitindo que a estratégia mantenha um lucro estável em um ambiente de mercado mais complexo.

Código-fonte da estratégia
/*backtest
start: 2023-11-29 00:00:00
end: 2023-12-06 00:00:00
period: 30m
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(2017, "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(testEndYear,testEndMonth,testEndDay,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
//@version=1
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=black, 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< Buy_stop))
    
strategy.entry("simpleSell", strategy.short,when=(close < dcAverage) and cross(close,dcAverage) )
strategy.close("simpleSell",when=( 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)