Todo sobre la estrategia de seguimiento de tendencias basada en ATR y EMA

El autor:¿ Qué pasa?, Fecha: 2024-02-23 14:34:24
Las etiquetas:

img

Resumen general

La idea central de esta estrategia es utilizar el rango de fluctuación de precios calculado por el indicador ATR para juzgar los avances de precios, y el indicador EMA para juzgar la dirección general de la tendencia, a fin de lograr la tendencia después de la negociación.

Principio de la estrategia

En primer lugar, esta estrategia utiliza el indicador ATR para calcular el rango de fluctuación de precios durante un cierto período. El límite superior del rango ATR es SMA+ATR, y el límite inferior es SMA-ATR. Donde SMA representa el promedio móvil simple del precio de cierre del día, y ATR representa el promedio de rango verdadero.

Cuando el precio rompe el límite superior o inferior del rango ATR, se produce una oportunidad comercial. En este momento, es necesario juzgar la dirección. Si es un avance ascendente, vaya largo. Si es un avance descendente, vaya corto. Para garantizar que la dirección del avance sea consistente con la dirección de la tendencia, la estrategia utiliza el indicador EMA para determinar la dirección general de la tendencia. Solo cuando la dirección del avance sea consistente con la dirección de la EMA se tomará una posición.

Finalmente, la estrategia utiliza el precio que rompe el rango ATR nuevamente como la señal de cierre.

Ventajas estratégicas

  1. El uso del indicador ATR para determinar los avances puede capturar de manera efectiva los avances de la tendencia de precios.

  2. La adición del indicador EMA como un juicio direccional evita el comercio en contra de la dirección de la tendencia, lo que puede mejorar en gran medida la tasa de ganancia.

  3. El uso de la ruptura del precio por encima del rango ATR como método de stop loss puede maximizar el control del riesgo.

Riesgos estratégicos

  1. En un mercado volátil, el intervalo ATR puede penetrar con frecuencia, lo que conduce fácilmente a operaciones excesivamente inválidas y a pérdidas más amplias.

  2. El EMA como indicador para juzgar la dirección de la tendencia tiene cierto retraso, por lo que puede perder oportunidades de reversión de precios a corto plazo.

  3. El método de stop loss es el retorno del precio por encima del rango, lo que puede llevar fácilmente a pérdidas ampliadas debido a eventos repentinos.

Direcciones para la optimización de la estrategia

  1. Considere combinar otros indicadores para determinar tendencias y retrocesos para evitar errores de juicio singulares de la EMA, como MACD, KDJ, etc.

  2. Considere ajustar los parámetros ATR en tiempo real de acuerdo con la volatilidad del mercado para que el intervalo ATR esté más cerca de la fluctuación real.

  3. Considerar la incorporación de un método de stop loss móvil para ajustar continuamente el punto de stop loss para maximizar el control del riesgo de pérdidas individuales.

Resumen de las actividades

La idea general de esta estrategia es clara, utilizando el indicador ATR para determinar los avances de precios y cooperando con la EMA para determinar la dirección, puede seguir efectivamente las tendencias; el método de stop loss es sencillo y fácil de operar. Pero al mismo tiempo, hay ciertos riesgos y un gran margen de optimización que necesitan más pruebas y ajustes. En general, esta estrategia es adecuada para los traders de tendencia que persiguen altas tasas de ganancia.


/*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)
//------------







Más.