Tudo sobre a estratégia de tendência baseada em ATR e EMA

Autora:ChaoZhang, Data: 2024-02-23 14:34:24
Tags:

img

Resumo

A ideia central desta estratégia é usar a faixa de flutuação de preços calculada pelo indicador ATR para julgar as rupturas de preços e o indicador EMA para julgar a direção geral da tendência, a fim de alcançar a tendência após a negociação.

Princípio da estratégia

Em primeiro lugar, esta estratégia usa o indicador ATR para calcular a faixa de flutuação de preços durante um determinado período. O limite superior da faixa ATR é SMA + ATR, e o limite inferior é SMA-ATR.

Quando o preço atravessa o limite superior ou inferior da faixa ATR, ocorre uma oportunidade de negociação. Neste momento, é necessário julgar a direção. Se for uma ruptura ascendente, vá longo. Se for uma ruptura descendente, vá curto. Para garantir que a direção da ruptura seja consistente com a direção da tendência, a estratégia usa o indicador EMA para determinar a direção geral da tendência. Somente quando a direção da ruptura for consistente com a direção da EMA, uma posição será tomada.

Por fim, a estratégia usa o preço quebrando a faixa ATR novamente como sinal de fechamento.

Vantagens da estratégia

  1. O uso do indicador ATR para determinar avanços pode capturar efetivamente os avanços da tendência de preços.

  2. A adição do indicador EMA como um julgamento direcional evita a negociação contra a direção da tendência, o que pode melhorar significativamente a taxa de lucro.

  3. Usar a ruptura do preço acima da faixa ATR como método de stop loss pode maximizar o controlo do risco.

Riscos estratégicos

  1. Em um mercado volátil, o intervalo ATR pode ser frequentemente ultrapassado, o que leva facilmente a negociações inválidas excessivas e a perdas maiores.

  2. O EMA como indicador para julgar a direcção da tendência tem algum atraso, pelo que pode perder oportunidades de reversões de preços a curto prazo.

  3. O método de stop loss é a ruptura do preço acima da faixa, o que pode facilmente levar a perdas ampliadas devido a eventos repentinos.

Orientações para a otimização da estratégia

  1. Considere a combinação de outros indicadores para determinar tendências e retrações para evitar erros de julgamento singulares da EMA, tais como MACD, KDJ, etc.

  2. Considere ajustar os parâmetros ATR em tempo real em função da volatilidade do mercado, de modo a que o intervalo ATR esteja mais próximo da flutuação real.

  3. Considerar a incorporação de um método de stop loss móvel para ajustar continuamente o ponto de stop loss para maximizar o controlo do risco de perdas individuais.

Resumo

A ideia geral desta estratégia é clara, usando o indicador ATR para determinar avanços de preços e cooperando com a EMA para determinar a direção, ele pode efetivamente seguir tendências; O método de stop loss é direto e fácil de operar. Mas, ao mesmo tempo, há certos riscos e grande espaço para otimização que precisam de mais testes e ajustes. Em geral, esta estratégia é adequada para traders de tendências que buscam altas taxas de ganho.


/*backtest
start: 2024-01-23 00:00:00
end: 2024-02-22 00:00:00
period: 3h
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/
// © cwagoner78
//@version=4
strategy("cATRpillar", overlay=true)
//------------

//inputs
lookback = input(title="Periods", type=input.integer, defval=37)
atrMult = input(title="Range Multiplier", type=input.float, defval=.2)
takeProfit = input(title="Take Profit", type=input.float, defval=5000)
stopLoss = input(title="Stop Loss", type=input.float, defval=2500)
lots = input(title="Lots to Trade", type=input.float, defval=1)
//------------

//indicators
atr=atr(lookback)*atrMult
sma=sma(close, lookback)
ema=ema(close,lookback*2)
rangeLo=sma-atr
rangeHi=sma+atr
//------------

//draw objects
p0 =plot(close, title="Close", color=#26A69A, linewidth=0, transp=80,style=plot.style_stepline)
p1 =plot(rangeHi, title="High", color=color.fuchsia, linewidth=0, transp=80,style=plot.style_stepline)
p2 =plot(rangeLo, title="Low", color=color.lime, linewidth=0, transp=80,style=plot.style_stepline)
p3 =plot(ema, title="EMA", color=color.white, linewidth=0, transp=80, style=plot.style_stepline)
fill(p1, p0, color=color.fuchsia)
fill(p0, p2, color=color.lime)
//------------

//Trading
atrShort=open[1] > rangeHi and open < rangeLo
atrLong=open[1] < rangeLo and open > rangeHi
exitLong=open>rangeLo
exitShort=open<rangeHi

//Long
longCondition=atrLong and open>ema+atr
strategy.entry(id="cATRpillar-Buy", long=true, when=longCondition)
longCloseCondition=exitLong
strategy.exit(id="cATRpillar-Exit", qty=lots, profit=takeProfit, loss=stopLoss, when=longCloseCondition)

//Short
shortCondition=atrShort and open<ema-atr
strategy.entry(id="cATRpillar-Sell", long=false, when=shortCondition)
shortCloseCondition=exitShort
strategy.exit(id="cATRpillar-Exit",  qty=lots, profit=takeProfit, loss=stopLoss, when=shortCloseCondition)

plotshape(shortCondition,  title= "Short", location=location.belowbar, color=color.fuchsia, transp=80, style=shape.triangledown, size=size.tiny)
plotshape(longCondition,  title= "Long", location=location.abovebar, color=color.lime, transp=80, style=shape.triangleup, size=size.tiny)
//------------







Mais.