Esta estrategia combina múltiples promedios móviles exponenciales (EMA) para identificar puntos de entrada y salida potenciales en el mercado. Al comparar las tendencias de las EMA con diferentes períodos, determina la tendencia actual del mercado y entra en operaciones al comienzo de la formación de la tendencia y cierra posiciones al comienzo del final de la tendencia.
Esta estrategia utiliza 4 EMA con diferentes períodos como indicadores principales, a saber, EMA de muy corto plazo (8 períodos de incumplimiento), EMA a corto plazo (13 períodos de incumplimiento), EMA a mediano plazo (21 períodos de incumplimiento) y EMA a largo plazo (55 períodos de incumplimiento). Cuando la EMA a largo plazo está por debajo de las otras tres EMA, se juzga que el mercado actual puede estar al comienzo de una tendencia alcista, y la estrategia abre una posición larga; cuando la EMA a largo plazo está por encima de las otras tres EMA, se juzga que el mercado actual puede estar al comienzo de una tendencia descendente, y la estrategia cierra todas las posiciones largas.
En comparación con el Simple Moving Average (SMA), la EMA pone más énfasis en los precios recientes y, por lo tanto, su tendencia es más sensible y puede reaccionar a los cambios de precios más rápidamente. El cruce de EMA con diferentes períodos refleja la fuerza de las tendencias en diferentes escalas de tiempo. La EMA a largo plazo es la más estable y representa la tendencia significativa del mercado; las EMA a mediano y corto plazo son relativamente sensibles y reflejan las tendencias del mercado a corto y mediano plazo.
Amplia aplicabilidad: Esta estrategia se basa en el indicador EMA del precio en sí y es aplicable a la mayoría de las variedades con buena liquidez y tendencias relativamente suaves, como varios futuros, divisas, criptomonedas convencionales, etc.
Seguimiento de tendencias: Al comparar la relación de posición de las EMA con diferentes períodos para determinar la tendencia, puede capturar el comienzo de la formación de tendencias en cierta medida y realizar un seguimiento de la tendencia.
Parámetros flexibles: Los parámetros del período de EMA pueden ajustarse de forma flexible de acuerdo con las características de las variedades, el horizonte de inversión, etc., y tienen cierta adaptabilidad.
Lógico claro: La estrategia genera señales de negociación basadas en una simple combinación de acuerdos de EMA largos y cortos, y la lógica es clara y fácil de entender e implementar.
El retraso de la EMA: la EMA es esencialmente un indicador de seguimiento de tendencias y tiene un cierto retraso, que puede generar más señales falsas en un mercado turbulento.
Sensibilidad de los parámetros: la selección de los parámetros del período de EMA tiene un impacto significativo en el rendimiento de la estrategia, y los parámetros optimizados pueden no mantener un buen rendimiento en los datos fuera de la muestra.
Falta de filtrado: esta estrategia carece de un mayor filtrado de las señales comerciales, y todas las señales generadas se negociarán, lo que puede resultar en algunas operaciones de baja calidad.
Posición fija: actualmente, la estrategia abre una posición fija de 1 unidad cada vez, carece de control dinámico de la posición basado en el riesgo y la gestión del riesgo no es lo suficientemente perfecta.
Introducir el filtrado de tendencias: sobre la base de las señales de la EMA, añadir indicadores de filtrado de fuerza de tendencia como ATR y ADX para filtrar las señales de tendencias débiles y períodos turbulentos.
Introducir el filtrado de volatilidad: sobre la base del filtrado de tendencias, se puede introducir un filtrado de volatilidad como el ancho de la banda de Bollinger para filtrar señales de baja calidad que puedan ser causadas por una alta volatilidad.
Optimizar el stop-loss: Actualmente, la estrategia carece de una lógica de stop-loss clara. Después de introducir la tendencia y el filtrado de volatilidad, se puede agregar un stop-loss dinámico basado en ATR o porcentaje para controlar la pérdida máxima de una sola operación.
Posición dinámica: basándose en la volatilidad de las variedades, la proporción del valor de la cuenta, etc., el número de posiciones abiertas por la estrategia cada vez puede controlarse dinámicamente para lograr mayores rendimientos absolutos y reducir el riesgo.
Optimización de los parámetros: para diferentes variedades y períodos diferentes, los parámetros óptimos de la EMA pueden ser diferentes, y la optimización de parámetros debe realizarse por separado de acuerdo con las características de las variedades para mejorar la aplicabilidad de la estrategia.
Esta estrategia identifica puntos de inflexión de tendencia comparando las combinaciones de arreglo largo y corto de 4 EMA con diferentes períodos para capturar el comienzo de la formación de tendencia. La idea es simple y clara. Sus ventajas se encuentran en su amplia gama de aplicabilidad, lógica clara y parámetros flexibles, y puede rastrear bien las tendencias; pero al mismo tiempo, también tiene el retraso inherente de los indicadores EMA, así como problemas como sensibilidad de parámetros, falta de filtrado y posición fija.
/*backtest start: 2023-03-05 00:00:00 end: 2024-03-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © n1ghthawk //@version=5 strategy("donmo's 4ema", overlay=true, margin_long=100, margin_short=100) float long = na float short = na lowestEMAPeriodInput = input.int(8, "Lowest EMA") lowEMAPeriodInput = input.int(13, "Low EMA") medEMAPeriodInput = input.int(21, "Med EMA") highEMAPeriodInput = input.int(55, "High EMA") lowestEMA = ta.ema(close, lowestEMAPeriodInput) lowEMA = ta.ema(close, lowEMAPeriodInput) medEMA = ta.ema(close, medEMAPeriodInput) highEMA = ta.ema(close, highEMAPeriodInput) emaLongCondition = highEMA<medEMA and highEMA<lowEMA and highEMA<lowestEMA emaShortCondition = highEMA>medEMA and highEMA>lowEMA and highEMA>lowestEMA longCondition = ta.change(emaLongCondition) shortCondition = ta.change(emaShortCondition) notInTrade = strategy.position_size <= 0 if longCondition and emaLongCondition and notInTrade long:=high strategy.entry("EL", strategy.long) if shortCondition and emaShortCondition short:=low strategy.close("EL") plot(long+3,title = 'long', color = color.green, linewidth = 4, style = plot.style_cross) plot(short-3,title = 'short', color = color.red, linewidth = 4, style = plot.style_cross) plot(lowestEMA, title = "lowestEMA", color=color.blue) plot(lowEMA, title = "lowEMA", color=color.green) plot(medEMA, title = "medEMA", color=color.orange) plot(highEMA, title = "highEMA", color=color.red)