Estratégias de breakout baseadas no Método Turtle Trading


Data de criação: 2023-10-17 17:22:34 última modificação: 2023-10-17 17:22:34
cópia: 2 Cliques: 920
1
focar em
1617
Seguidores

Estratégias de breakout baseadas no Método Turtle Trading

Visão geral

Esta estratégia é baseada no famoso método de negociação da pirâmide, que usa o indicador de canal de Donchian para determinar a ruptura do preço e, em combinação com o indicador ATR, para definir o ponto de parada para realizar o acompanhamento da tendência. A vantagem da estratégia é a capacidade de controle de retração forte, capaz de controlar efetivamente o stop único e reduzir a probabilidade de perdas contínuas.

Princípios

A estratégia baseia-se principalmente em dois indicadores: o canal Donchian e o ATR.

O canal Donchian é calculado a partir de preços máximos e mínimos. A estratégia define o canal como um canal de 20 dias, com um máximo e um mínimo de 20 dias. O canal gera um sinal de compra quando o preço atravessa o canal; o canal gera um sinal de venda quando o preço atravessa o canal.

O indicador ATR é usado para medir a volatilidade do mercado e definir um stop loss. O ciclo ATR padrão é de 20 dias. A estratégia usa o dobro do ATR como ponto de parada.

A lógica da transação é a seguinte:

  1. Faça mais entradas quando o preço for acima do canal.

  2. O ponto de parada é o ponto baixo de entrada menos o dobro do ATR.

  3. Quando o preço atravessa o canal inferior, a posição de maior posição é eliminada.

  4. Quando o preço atravessa o canal inferior, faça uma entrada em branco.

  5. O ponto de parada é o ponto de entrada mais o dobro do ATR.

  6. Quando o preço atravessa o canal, a posição de cabeça fica vazia.

Resumindo, a estratégia se baseia no canal Donchian para determinar a direção da tendência e o momento de entrada para controlar o risco com a configuração de stop loss do ATR, permitindo o acompanhamento da tendência.

Análise de vantagens

A estratégia tem as seguintes vantagens:

  1. A capacidade de controle de retirada é forte. O uso do indicador ATR para definir o stop loss pode efetivamente controlar os perdas individuais.

  2. O rastreamento de tendências é implementado. O canal Donchian pode determinar efetivamente as rupturas de preços e indicar a mudança de tendência.

  3. Adequado para variedades de alta volatilidade. O indicador ATR considera a volatilidade do mercado, configurando um stop loss mais adequado às características de diferentes variedades.

  4. A estratégia é simples, clara e fácil de entender.

  5. Estratégias de programação e otimização flexíveis em Python disponíveis.

Análise de Riscos

A estratégia também apresenta alguns riscos que devem ser considerados:

  1. Os parâmetros do canal precisam ser otimizados. De acordo com diferentes variedades e períodos de tempo, os parâmetros do canal precisam ser ajustados para se adaptar às características do mercado.

  2. Risco de parada contínua. Em circunstâncias excepcionais, pode desencadear várias paradas em curto prazo, causando grandes perdas.

  3. Os parâmetros do ATR precisam ser testados. Os parâmetros do ATR afetam diretamente o efeito de parada de danos e precisam ser ajustados em diferentes variedades e ambientes de flutuação.

  4. A frequência de negociação pode ser excessiva. Em mercados de turbulência, onde a tendência não é visível, pode ocorrer um excesso de sinais de cruzamento.

  5. Os lucros podem ser limitados. A estratégia é baseada em stop-loss e não é eficaz para capturar o aumento total da tendência.

  6. Em algumas situações excepcionais, o salto do preço pode desencadear diretamente o stop loss.

Direção de otimização

A estratégia pode ser otimizada em:

  1. Optimizar os parâmetros do canal para testar a adequação de diferentes parâmetros para diferentes variedades.

  2. Aumentar as condições de filtragem para evitar o excesso de sinais em situações de turbulência. Pode-se considerar a amplitude de ruptura ou filtragem de volume de transação.

  3. Otimizar os parâmetros do ciclo ATR e testar a influência de diferentes parâmetros no efeito de parada.

  4. Aumentar a estratégia de entrada em pirâmide, adicionar posições em tendências e expandir o espaço de lucro.

  5. Em combinação com outros indicadores, para melhorar a eficácia do filtro. Indicadores como MACD, KD e outros para avaliar a tendência, evitando a inversão de negociação.

  6. Optimizar os custos de transação de acordo com os pontos de deslizamento e comissões.

  7. Testar a adaptabilidade de diferentes variedades, ajustando os parâmetros para variedades específicas.

Resumir

Esta estratégia é uma versão introdutória da lei de negociação da praia. Em geral, a estratégia é simples e clara, com um forte controle de retração, que pode efetivamente verificar os princípios da lei de negociação da praia.

Código-fonte da estratégia
/*backtest
start: 2022-10-10 00:00:00
end: 2023-10-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//Based on Turtle traders strategy: buy/sell on Donchian breakouts and stop loss on ATR 2x
// initial version considerations :
//// 1. Does not consider filter for avoiding new entries after winning trades (filtering rule from Turtle Strategy on 20 day breakout strategy) 
//// 2. Does not consider pyramiding (aditional entries after 1N price movements)

strategy("Turtle trading strategy (Donchian/ATR)", overlay=true)

enter_period = input(20, minval=1, title="Enter Channel")
exit_period = input(10, minval=1, title="Exit Channel")
offset_bar = input(0,minval=0, title ="Offset Bars")
direction = input("Long",options=["Long","Short"],title="Direction")
max_length = max(enter_period,exit_period)
atrmult = input(2,title="ATR multiplier (Stop Loss)")
atrperiod = input(20,title="ATR Period")

closed_pos = false
dir_long = direction == "Long"? true : false
atr = atr(atrperiod)
upper = dir_long ? highest(enter_period): highest(exit_period)
lower = dir_long ? lowest(exit_period): lowest(enter_period)
atrupper = close + atr
atrlower = close - atr
plotted_atr = dir_long ? atrlower : atrupper

//basis = avg(upper, lower)

l = plot(lower, style=line, linewidth=3, color=lime, offset=1)
u = plot(upper, style=line, linewidth=3, color=lime, offset=1)
a = plot(plotted_atr, style=line,linewidth=2,color=red,offset=1)
//plot(basis, color=yellow, style=line, linewidth=1, title="Mid-Line Average")
//break upper Donchian (with 1 candle offset) (buy signal)
break_up = (close >= upper[1])
//break lower Donchian (with 1 candle offset) (sell signal)
break_down = (close <= lower[1])
stop_loss = dir_long ? (close<=plotted_atr[1]) : (close>=plotted_atr[1])

if break_up and dir_long
    strategy.entry("buy", strategy.long, 1)
    closed_pos :=false
if (break_down or stop_loss) and dir_long
    strategy.close("buy")
    
if break_down and not dir_long
    strategy.entry("sell", strategy.short, 1)
    closed_pos :=false
if (break_up or stop_loss) and not dir_long
    strategy.close("sell")
    closed_pos :=true
    
losing_trade = strategy.equity[0]<strategy.equity[1]
//plotshape(losing_trade,text="Losing!")    
plotshape(stop_loss,style=dir_long?shape.labeldown:shape.labelup,text="Stop!")
//plot(strategy.equity)