La estrategia de comercio de doble intervalo de EMA es una estrategia de seguimiento de tendencias que determina la tendencia del mercado y realiza operaciones mediante el cálculo de la proporción de intervalo de EMA de dos plazos diferentes. La estrategia es simple y directa, puede seguir de manera efectiva la tendencia de la línea media y larga y es muy adecuada para los operadores de tendencias de la línea media y larga.
La estrategia se basa principalmente en el tamaño numérico de los dos EMA y el intervalo entre ellos para determinar la dirección de la tendencia. La estrategia primero calcula un EMA a corto plazo y un EMA a largo plazo, con una configuración típica de 13 y 26 períodos de EMA. Luego calcula el porcentaje de intervalo entre los dos EMA, y si el EMA a corto plazo es superior al EMA a largo plazo y el intervalo es mayor que el umbral establecido (por ejemplo, 5%), se juzga como una tendencia al alza y se realizan más operaciones; si el EMA a corto plazo es inferior al EMA a largo plazo y el intervalo es mayor que el umbral establecido, se juzga como una tendencia a la baja y se realizan operaciones en blanco.
La lógica central de esta estrategia es la siguiente:
Con este diseño, se puede seguir eficazmente las tendencias a medio y largo plazo y cambiar de dirección a tiempo cuando la tendencia cambia. Al mismo tiempo, la configuración de los umbrales de intervalo también evita que los ajustes en períodos no críticos produzcan transacciones innecesarias.
El riesgo puede reducirse de la siguiente manera:
La estrategia se puede optimizar en los siguientes aspectos:
Optimización de parámetros: búsqueda de la combinación óptima de parámetros para optimizar los parámetros de ciclo EMA y el umbral de intervalo mediante la retroalimentación
Filtración de tendencias: añade otros indicadores de tendencias, como el MACD, las bandas de Bryn y otros, para evitar la trampa de la oscilación
Estrategia de stop loss: establezca un stop loss móvil o temporal para controlar las pérdidas individuales
Retorno de ganancias: establezca un punto de parada móvil después de obtener una parte de las ganancias y bloquee una parte de las ganancias
Optimización cuantitativa: Optimización automática de parámetros y condiciones de filtrado mediante métodos como el aprendizaje automático para lograr la optimización cuantitativa de la estrategia
Optimización de combinación: combinación de la estrategia con otras estrategias no relacionadas para reducir la retirada y mejorar la estabilidad
La optimización de varios aspectos, como parámetros, condiciones de filtración, stop loss, retorno de ganancias, etc., puede hacer que la estrategia sea más estable, se adapte a más situaciones de mercado, sea más científica y efectiva. La optimización cuantitativa y combinada también puede mejorar considerablemente la eficacia de la estrategia.
La estrategia de doble intervalo de EMA es una estrategia simple, directa y adecuada para el seguimiento de la tendencia. Se requieren solo dos EMA para determinar la dirección de la tendencia y es muy adecuada para mantener posiciones en la línea media y larga. Al mismo tiempo, se puede mejorar de varias maneras para que la estrategia sea más estable y confiable a través de optimización de parámetros, filtración de tendencias y estrategias de parada de pérdidas.
/*backtest
start: 2023-08-19 00:00:00
end: 2023-08-23 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("2-EMA Strategy", overlay=true, initial_capital=100, currency="USD", default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.075)
diffMinimum = input(0.95, step=0.01)
small_ema = input(13, title="Small EMA")
long_ema = input(26, title="Long EMA")
ema1 = ema(close, small_ema)
ema2 = ema(close, long_ema)
orderCondition = ema1 > ema2?((ema1/ema2)*100)-100 > diffMinimum:((ema2/ema1)*100)-100 > diffMinimum
longCondition = close > ema1 and ema1 > ema2
if (longCondition and orderCondition)
strategy.entry("Long", strategy.long)
shortCondition = close < ema1 and ema1 < ema2
if (shortCondition and orderCondition)
strategy.entry("Short", strategy.short)
strategy.close("Short", when=close > ema1)
strategy.close("Long", when=close < ema1)
plot(ema(close, small_ema), title="EMA 1", color=green, transp=0, linewidth=2)
plot(ema(close, long_ema), title="EMA 2", color=orange, transp=0, linewidth=2)