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.
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.
O uso do indicador ATR para determinar avanços pode capturar efetivamente os avanços da tendência de preços.
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.
Usar a ruptura do preço acima da faixa ATR como método de stop loss pode maximizar o controlo do risco.
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.
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.
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.
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.
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.
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.
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) //------------