Estratégia de acompanhamento de tendências ATR


Data de criação: 2023-09-21 15:13:47 última modificação: 2023-09-21 15:13:47
cópia: 0 Cliques: 770
1
focar em
1617
Seguidores

Visão geral

A estratégia usa a amplitude real média (ATR) para capturar a tendência dos preços e a ATR para estabelecer um ponto de parada para o acompanhamento da tendência.

Princípio da estratégia

  1. Calcular o valor do ATR.

  2. Determine o seu ponto de parada com base no valor do ATR.

  3. Quando o preço ultrapassa a linha de stop loss, faça mais decolagem.

  4. Bloqueio de lucro através de ajustes dinâmicos de stop loss.

Vantagens estratégicas

  • ATR para ajuste automático de stop loss, sem intervenção humana
  • Estratégias simples, intuitivas e fáceis de implementar
  • Evite o encurralamento e pare o dano a tempo.
  • Aproveite as tendências para ser lucrativo
  • A frequência de transação pode ser controlada por ajustes de parâmetros ATR

Risco estratégico

  • A configuração incorreta do parâmetro ATR pode resultar em Loose ou Tight
  • Não é possível identificar o fim de uma tendência
  • Há um atraso de tempo.
  • Parte do lucro, possivelmente devido a reversão de perdas

Direção de otimização

  • Optimizar os parâmetros do ciclo ATR
  • Testar diferentes ATR como distância de parada
  • Combinado com outros indicadores, identifica uma reversão de tendência
  • Tente otimizar os parâmetros de aprendizado de máquina
  • Considere estratégias adicionais de prevenção

Resumir

A estratégia usa o ATR para capturar as tendências com eficiência e ajustar dinamicamente o stop loss para obter o bloqueio de lucro. A configuração de parâmetros de otimização pode melhorar o desempenho da estratégia.

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

strategy(title="ATR Strategy", overlay = true,  commission_type=strategy.commission.percent,commission_value=0.075)
//credits to HPotter for the orginal code
nATRPeriod = input(5)
nATRMultip = input(3.5)
xATR = ta.atr(nATRPeriod)
nLoss = nATRMultip * xATR
xATRTrailingStop = iff(close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0), math.max(nz(xATRTrailingStop[1]), close - nLoss),
                    iff(close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0), math.min(nz(xATRTrailingStop[1]), close + nLoss), 
                        iff(close > nz(xATRTrailingStop[1], 0), close - nLoss, close + nLoss)))
pos =	iff(close[1] < nz(xATRTrailingStop[1], 0) and close > nz(xATRTrailingStop[1], 0), 1,
	    iff(close[1] > nz(xATRTrailingStop[1], 0) and close < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0))) 
color = pos == -1 ? color.red: pos == 1 ? color.green : color.blue 
plot(xATRTrailingStop, color=color, title="ATR Trailing Stop")

barbuy = close > xATRTrailingStop 
barsell = close < xATRTrailingStop 

strategy.entry("Long", strategy.long, when = barbuy) 
strategy.entry("Short", strategy.short, when = barsell) 

barcolor(barbuy? color.green:color.red)