Esta estrategia es una estrategia de seguimiento de tendencias basada en el cruce de impulso de la EMA 34 como señal de entrada. Combina las señales de avance de los precios que rompen la línea de impulso de la EMA y la cruz de oro de la EMA 34 para generar señales de negociación.
La estrategia primero calcula las líneas EMA de 34 períodos de cierre, alto, bajo, denominadas emaClose, emaHigh, emaLow respectivamente. Luego genera señales de compra y venta según si el precio rompe el emaHigh y el emaLow.
Específicamente, cuando el precio de cierre excede emaHigh, se genera una señal de compra; cuando el precio de cierre está por debajo de emaLow, se genera una señal de venta. Una vez que se genera la señal, ingrese al precio de cierre en ese momento y establezca la toma de ganancias a 100 puntos y el stop loss a 50 puntos.
De esta manera, la estrategia utiliza el indicador de impulso de EMA 34 para captar la tendencia del mercado y aplicar la tendencia siguiente.
La mayor ventaja de esta estrategia es que combina tanto la señal de cruz dorada de la media móvil como la señal de avance del precio, lo que hace que el punto de entrada sea más preciso y pueda filtrar eficazmente las señales falsas.
El principal riesgo de esta estrategia es que es propensa a pérdidas largas consecutivas. Cuando el mercado tiene un choque de ajuste corto antes de iniciar una nueva tendencia alcista, esta estrategia puede reducir con frecuencia las posiciones en pérdida. Además, como una estrategia de seguimiento de tendencias, no puede obtener buenos beneficios en un mercado lateral.
La optimización se puede lograr ajustando adecuadamente el punto de stop loss o agregando otros indicadores para mejorar la tasa de ganancia de la estrategia.
La estrategia se puede optimizar en las siguientes direcciones:
Añadir otros indicadores para filtrar, como añadir un indicador de volumen para evitar quedar atrapados en falsos brotes.
Optimizar los parámetros del ciclo EMA y ajustarlos a parámetros del ciclo más adecuados para la variedad.
Utilice un mecanismo de salida como el factor de ganancia en lugar de los simples puntos de toma de ganancia y stop loss para mejorar la estabilidad de la estrategia.
Aumentar el filtrado de liquidez para evitar la negociación en períodos de escasa liquidez, lo que puede reducir las pérdidas por deslizamiento.
Como una estrategia de seguimiento de tendencias basada en indicadores de impulso de la EMA, esta estrategia tiene una alta utilidad práctica. Al combinar señales de avance de precios y señales de cruz dorada de la EMA, puede descubrir efectivamente nuevas direcciones de tendencia. Después de cierto parámetro y optimización del mecanismo de salida, la estabilidad de la estrategia puede mejorarse aún más.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA 34 Crossover Strategy_4", overlay=true) length = 34 exitPoints = 50 emaClose = ta.ema(close, length) emaHigh = ta.ema(high, length) emaLow = ta.ema(low, length) var float[] entryPrices = array.new_float() var float[] exitLevels = array.new_float() // Long entry condition: Price crosses above EMA 34 high enterLong = ta.crossover(close, emaHigh) // Short entry condition: Price crosses below EMA 34 low enterShort = ta.crossunder(close, emaLow) // Exit condition for both long and short trades exitLong = array.size(entryPrices) > 0 ? close >= array.get(entryPrices, array.size(entryPrices) - 1) + exitPoints : false exitShort = array.size(entryPrices) > 0 ? close <= array.get(entryPrices, array.size(entryPrices) - 1) - exitPoints : false if (enterLong) array.push(entryPrices, close) array.push(exitLevels, close + exitPoints) strategy.entry("Buy", strategy.long) if (enterShort) array.push(entryPrices, close) array.push(exitLevels, close - exitPoints) strategy.entry("Sell", strategy.short) if (exitLong) strategy.close("Buy") if (exitShort) strategy.close("Sell") plot(emaClose, color=color.blue, title="EMA 34 Close") plot(emaHigh, color=color.red, title="EMA 34 High") plot(emaLow, color=color.green, title="EMA 34 Low")