
La estrategia de negociación de la línea media progresiva es una estrategia de negociación basada en señales cruzadas de promedios móviles exponenciales (EMA) de dos parámetros diferentes. Utiliza una línea EMA de período más corto y una línea EMA de período más largo, que generan señales de negociación cuando se cruzan, aumentando la línea rápida cuando cruza la línea lenta hacia arriba y equilibrando la posición cuando cruza la línea lenta hacia abajo. La estrategia también combina métodos de gestión de riesgos como stop loss, tracking stop loss para bloquear ganancias y controlar el riesgo.
El indicador central de esta estrategia son las dos líneas EMA: la línea rápida y la línea lenta. El parámetro de la línea rápida está configurado por defecto como la línea de 13 días, lo que hace que los cambios en los precios sean más sensibles; el parámetro de la línea lenta está configurado por defecto como la línea de 48 días, lo que hace que los cambios en los precios sean más lentos.
De acuerdo con este principio, la estrategia hace más cuando la línea rápida se rompe la línea lenta de abajo hacia arriba, lo que significa que el precio comienza a subir y se puede comprar; cuando la línea rápida se cierra de arriba hacia abajo y rompe la línea lenta, lo que significa que la tendencia ascendente ha terminado, y se debe detener y congelar. Para controlar el riesgo, la estrategia también establece un stop loss inicial y un stop loss de seguimiento: el stop loss inicial es del 8% del precio de entrada, y el stop loss de seguimiento es de 120 puntos. Esto puede detenerse lo antes posible y reducir las pérdidas cuando el precio se invierte.
En la implementación de código, la estrategia determina las señales de cruce de EMA mediante las funciones de cruce y cruce, y cuando se produce el cruce, se activa la entrada y el cierre correspondientes para comprar y cerrar la posición.
La estrategia de negociación de línea media progresiva tiene las siguientes ventajas:
Las señales de estrategia son simples, claras, fáciles de entender y adecuadas para los principiantes.
El indicador de la línea media tiene un buen efecto de filtración del ruido del mercado y puede detectar cambios en la tendencia.
Es altamente configurable, con parámetros de línea rápida y lenta y puntos de parada personalizados.
La combinación de medidas de deterioro puede controlar el riesgo de manera efectiva.
Tiene cierta estabilidad.
La estrategia también tiene ciertos riesgos:
La señal cruzada de EMA puede retrasarse en momentos de fuerte volatilidad del mercado y no reflejar los cambios en los precios a tiempo;
El ajuste de los parámetros del indicador de la línea media a una velocidad demasiado rápida puede generar más señales erróneas;
Cuando la tendencia es débil, la intersección de EMA es menor y no puede capturar eficazmente la tendencia de los precios.
La estrategia en sí misma no tiene en cuenta el análisis de tendencias a gran escala, y es fácil generar transacciones que se desvían de las grandes tendencias cuando la tendencia general del mercado no es clara.
Los riesgos pueden mitigarse mediante:
En combinación con otros indicadores para confirmar la señal de cruce equilátero, como MACD, KD, etc.;
Ajustar los parámetros de EMA de acuerdo a los diferentes mercados para reducir la tasa de señales erróneas;
Añadir módulos de evaluación de tendencias para evaluar la dirección general de la situación a partir de la media a largo plazo.
La estrategia puede ser optimizada en las siguientes direcciones:
Aumentar los filtros de condiciones de apertura de posiciones para evitar el exceso de transacciones innecesarias en situaciones de crisis. Se puede establecer un umbral de apertura de posiciones en combinación con indicadores como la volatilidad y el volumen de transacciones.
Para establecer la posición de la parada de pérdidas y mejorar la precisión de la parada de pérdidas, combinando los altos y bajos del mercado, los niveles de soporte, etc.;
La adición de un módulo de evaluación de tendencias para filtrar las señales de corto plazo con tendencias de largo plazo en un marco de tiempo más alto y evitar desviaciones de las grandes tendencias.
Se puede entrenar y optimizar los parámetros de la EMA a través del aprendizaje automático para que se ajusten mejor a las condiciones reales del mercado, reduciendo la tasa de señales erróneas.
Estos son algunos de los puntos principales que la estrategia puede mejorar y optimizar en el futuro. La combinación adecuada de más indicadores y herramientas de gestión de riesgos puede mejorar la eficacia de la estrategia de cruce de la EMA.
La estrategia de comercio de línea de avance progresiva es una estrategia básica de seguimiento de la tendencia. Utiliza la línea rápida y la línea lenta de la EMA para juzgar la tendencia de los precios, y combina los medios de control de riesgo con los medios de deterioro. La señal de la estrategia es simple y clara, fácil de entender, especialmente adecuada para los principiantes, y es una de las estrategias típicas de la introducción cuantitativa.
/*backtest
start: 2022-12-13 00:00:00
end: 2023-12-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
// *** USE AT YOUR OWN RISK ***
//
strategy("EMA Strategy", shorttitle = "EMA Strategy", overlay=true, pyramiding = 3,default_qty_type = strategy.percent_of_equity, default_qty_value = 10)
// === Inputs ===
// short ma
maFastSource = input(defval = close, title = "Fast MA Source")
maFastLength = input(defval = 13, title = "Fast MA Period", minval = 1)
// long ma
maSlowSource = input(defval = close, title = "Slow MA Source")
maSlowLength = input(defval = 48, title = "Slow MA Period", minval = 1)
// invert trade direction
tradeInvert = input(defval = false, title = "Invert Trade Direction?")
// risk management
useStop = input(defval = true, title = "Use Initial Stop Loss?")
slPoints = input(defval = 25, title = "Initial Stop Loss Points", minval = 1)
useTS = input(defval = true, title = "Use Trailing Stop?")
tslPoints = input(defval = 120, title = "Trail Points", minval = 1)
useTSO = input(defval = false, title = "Use Offset For Trailing Stop?")
tslOffset = input(defval = 20, title = "Trail Offset Points", minval = 1)
// === Vars and Series ===
fastMA = ema(maFastSource, maFastLength)
slowMA = ema(maSlowSource, maSlowLength)
plot(fastMA, color=blue)
plot(slowMA, color=purple)
goLong() => crossover(fastMA, slowMA)
killLong() => crossunder(fastMA, slowMA)
strategy.entry("Buy", strategy.long, when = goLong())
strategy.close("Buy", when = killLong())
// Shorting if using
goShort() => crossunder (fastMA, slowMA)
killShort() => crossover(fastMA, slowMA)
//strategy.entry("Sell", strategy.short, when = goShort())
//strategy.close("Sell", when = killShort())
if (useStop)
strategy.exit("XLS", from_entry ="Buy", stop = strategy.position_avg_price / 1.08 )
strategy.exit("XSS", from_entry ="Sell", stop = strategy.position_avg_price * 1.08)