La doble estrategia de cruce de promedios móviles es una estrategia comercial cuantitativa común. Utiliza el cruce de promedios móviles rápidos y lentos como las señales de compra y venta. Cuando el promedio móvil rápido cruza por encima del promedio móvil lento desde la parte inferior, se genera una señal de compra. Cuando el promedio móvil rápido cruza por debajo del promedio móvil lento desde la parte superior, se genera una señal de venta.
La lógica central de esta estrategia es calcular dos grupos de promedios móviles, uno es el promedio móvil rápido con un parámetro de período de 10 días, y el otro es el promedio móvil lento con un parámetro de período de 30 días.
Cuando el promedio móvil rápido cruza por encima del lento, significa que el precio a corto plazo comienza a romper la tendencia a largo plazo, que es una señal de cruz dorada para ir largo. Cuando el promedio móvil rápido cruza por debajo del lento, significa que el precio a corto plazo comienza a caer por debajo de la tendencia a largo plazo, que es una señal de cruz de muerte para ir corto.
La estrategia también establece mecanismos de stop loss y take profit. La stop loss se activa cuando el precio cae por debajo de un cierto porcentaje del precio de entrada. La take profit se activa cuando el precio se eleva por encima de un cierto porcentaje del precio de entrada.
La doble estrategia de cruce de medias móviles tiene las siguientes ventajas:
La lógica es simple y fácil de entender e implementar;
Los parámetros de las medias móviles rápidas y lentas se pueden personalizar para adaptarse a diferentes mercados;
Contiene configuraciones de stop loss y take profit para limitar las pérdidas;
Puede tener un buen rendimiento tanto en los mercados de tendencia como en los de rango.
La doble estrategia de cruce de medias móviles también presenta los siguientes riesgos:
La señal del cruce puede ser una falsa fuga, lo que conduce a pérdidas;
Los ajustes inadecuados de los valores de stop loss y take profit pueden dar lugar a pérdidas enormes o a una reducción de los beneficios esperados;
Se basa únicamente en indicadores técnicos sin tener en cuenta los fundamentos.
Soluciones correspondientes:
añadir otros indicadores técnicos para filtrar las señales falsas;
Prueba y optimización de los parámetros de stop loss y take profit;
Incorporar el análisis fundamental.
La estrategia se puede optimizar a partir de los siguientes aspectos:
Prueba diferentes combinaciones de parámetros de medias móviles para encontrar la óptima;
Se añadirán indicadores de confirmación del volumen-precio para evitar falsos breakouts.
Ajustar dinámicamente el stop loss y los porcentajes de ganancia para obtener mejores beneficios;
Incorporar otros indicadores como el volumen de operaciones, la tasa de rotación, etc.
En resumen, la estrategia de cruce de media móvil dual es una estrategia de negociación cuantitativa simple y práctica. Es fácil de entender e implementar y puede generar ganancias estables en la mayoría de los entornos de mercado. Al optimizar los parámetros, agregar filtros de señal y mecanismos dinámicos de toma de ganancias, la estrategia puede volverse más confiable y rentable. Como una de las estrategias comerciales cuantitativas fundamentales, vale la pena aprender y aplicar.
/*backtest start: 2023-01-12 00:00:00 end: 2024-01-18 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Moving Average Crossover", overlay=true) // Define input parameters fast_length = input(10, title="Fast MA Length") slow_length = input(30, title="Slow MA Length") stop_loss_percent = input(1.0, title="Stop Loss (%)", minval=0.1, maxval=10, step=0.1) take_profit_percent = input(2.0, title="Take Profit (%)", minval=0.1, maxval=10, step=0.1) // Calculate moving averages fast_ma = sma(close, fast_length) slow_ma = sma(close, slow_length) // Entry conditions long_condition = crossover(fast_ma, slow_ma) short_condition = crossunder(fast_ma, slow_ma) // Plot moving averages on the chart plot(fast_ma, title="Fast MA", color=color.blue) plot(slow_ma, title="Slow MA", color=color.red) // Strategy orders strategy.entry("Long", strategy.long, when=long_condition) strategy.entry("Short", strategy.short, when=short_condition) // Set stop loss and take profit levels stop_loss_price = close * (1 - stop_loss_percent / 100) take_profit_price = close * (1 + take_profit_percent / 100) strategy.exit("Take Profit/Stop Loss", from_entry="Long", stop=stop_loss_price, limit=take_profit_price) strategy.exit("Take Profit/Stop Loss", from_entry="Short", stop=take_profit_price, limit=stop_loss_price)