Esta es una estrategia de seguimiento de tendencia basada en líneas EMA. Utiliza dos líneas EMA con períodos diferentes, 21 y 55. Cuando la línea EMA más rápida cruza por encima de la línea EMA más lenta, se genera una señal de compra. Cuando la EMA más rápida cruza por debajo de la más lenta, se genera una señal de venta.
Además, la estrategia incorpora operaciones inversas, ATR stop loss y reversal take profit para mejorar su estabilidad y rentabilidad.
Las líneas de EMA de 21 y 55 periodos representan una tendencia a corto plazo y la EMA de 55 una tendencia a largo plazo.
Cuando la EMA 21 cruza por encima de la EMA 55, indica que la tendencia a corto plazo cambia hacia arriba, generando una señal de compra.
Cuando la EMA 21 cruza por debajo de la EMA 55, indica que la tendencia a corto plazo se vuelve a la baja, generando una señal de venta.
Comercio inverso: solo compra cuando el precio está por debajo del precio de apertura y solo vende cuando el precio está por encima del precio de apertura.
ATR stop loss: utilizar N veces ATR para establecer el precio de stop loss. Esto ajusta dinámicamente el stop loss en función de la volatilidad del mercado.
Reversión de la toma de ganancias: utilizar el precio de entrada menos N veces ATR como objetivo de ganancia.
Captura las tendencias a medio y largo plazo utilizando una doble EMA.
El comercio inverso se adapta a las operaciones de retroceso a corto plazo de las tendencias.
La parada ATR se adapta a la volatilidad del mercado.
La reversión del beneficio se sitúa cerca de niveles técnicos importantes con mayor probabilidad.
Lógica simple y clara, fácil de entender y modificar.
Aplicable para mercados altamente volátiles como las criptomonedas.
La doble EMA puede generar señales falsas y alargar los períodos de EMA.
Las operaciones inversas tienden a detener pérdidas.
Las fugas falsas ocurren con frecuencia.
Alto riesgo en las órdenes de toma de ganancias.
Añadir indicadores como MACD, KD para filtrar las señales en zonas de sobrecompra / sobreventa.
Añadir más EMA como 120 período EMA para juzgar la tendencia de manera integral.
Establezca un deslizamiento diferente para largos y cortos para un mejor precio de entrada.
Aumentar el stop loss ATR para el comercio de criptomonedas altamente volátil.
Optimizar el multiplicador ATR y los mecanismos de detención de trailers para obtener el máximo beneficio y el mínimo aprovechamiento.
En conclusión, esta es una estrategia de seguimiento de tendencias dual EMA relativamente simple. Su fortaleza radica en una lógica limpia, parámetros flexibles, aplicabilidad en tendencias a medio y largo plazo y reversiones a corto plazo. También analizamos sus posibles debilidades y soluciones, junto con varias recomendaciones para futuras mejoras. En general, esta estrategia es práctica hasta cierto punto y tiene espacio para evolucionar, pero sus parámetros necesitan ajustes para diferentes mercados.
/*backtest start: 2022-11-21 00:00:00 end: 2023-11-27 00:00:00 period: 1d basePeriod: 1h 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/ // © TheHulkTrading // Simple EMA strategy, based on ema55+ema21 and ATR(Average True Range) and it enters a deal from ema55 when the other entry conditions are met //@version=4 strategy("Simple Ema_ATR Strategy HulkTrading", overlay=true) atr_multiplier = input(2, minval=1, title="ATR Multiplier") // ATR Multiplier. Recommended values between 1..4 emaFast=ema(close,21) emaSlow=ema(close,55) //Basically long and short conditions //If long: // 1) close must be less than open (because we are searching for a pullback) // 2) emaFast(21) must be bigger than emaSlow(55) - for a trend detection // 3) Difference between emaFast and emaSlow must be greater than ATR(14) - for excluding flat longCond = close < open and emaFast > emaSlow and abs(emaSlow-emaFast) > atr(14) //For short conditions are opposite shortCond = close > open and emaFast < emaSlow and abs(emaSlow-emaFast) > atr(14) //Stop levels and take profits, based on ATR multiplier stop_level_long = strategy.position_avg_price - atr_multiplier*atr(14) take_level_long = strategy.position_avg_price + atr_multiplier*atr(14) stop_level_short = strategy.position_avg_price + atr_multiplier*atr(14) take_level_short = strategy.position_avg_price - atr_multiplier*atr(14) //Entries and exits strategy.entry("Long", strategy.long, when=longCond, limit = emaSlow) strategy.exit("Stop Loss/TP","Long", stop=stop_level_long, limit = take_level_long) strategy.entry("Short", strategy.short, when=shortCond, limit = emaSlow) strategy.exit("Stop Loss/TP","Short", stop=stop_level_short, limit = take_level_short)