Esta es una estrategia de negociación basada en señales de cruce de promedio móvil. Utiliza una línea de promedio móvil de 45 días como el principal indicador técnico y genera señales de compra y venta cuando el precio rompe la línea de promedio móvil.
Cuando el precio sube y se rompe por encima de la línea de la media móvil de 45 días, se genera una señal de compra. Después de mantener la posición durante 8 días, se genera una señal de venta. Después, si el precio sube y se rompe por encima de la línea de la media móvil de 45 días de nuevo, se activará una nueva señal de compra, y así sucesivamente.
Los principios lógicos específicos son:
Lo anterior constituye la lógica comercial central de esta estrategia.
Esta estrategia tiene las siguientes ventajas:
Hay algunos riesgos con esta estrategia:
Soluciones:
Las principales áreas de mejora son:
Optimizar los parámetros de la MA para encontrar las mejores combinaciones, por ejemplo, las MA de 15 días, 30 días o 60 días.
Optimizar el período de retención para determinar la duración óptima, por ejemplo, 5 días, 10 días, 15 días.
Se añadirán paradas posteriores para rastrear las tendencias y controlar los riesgos, por ejemplo, paradas de ensayo o paradas ATR.
Añadir filtros utilizando otros indicadores como MACD, KDJ para reducir las señales falsas.
Refinar las normas de reentrada para evitar el exceso de negociación, por ejemplo, imponer períodos de reflexión.
La eficacia de las pruebas en diferentes mercados e instrumentos.
En resumen, esta estrategia de cruce de MA es un sistema de seguimiento de tendencias simple y práctico. Se aprovecha de la capacidad de seguimiento de tendencias de los MA y combina las rupturas de precios para generar señales comerciales.
/*backtest start: 2023-01-16 00:00:00 end: 2024-01-22 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Moving Average Crossover Strategy", overlay=true) // Calculate the 45-day moving average ma_length = 45 ma = ta.sma(close, ma_length) // Track position entry and entry bar var bool in_long_position = na var int entry_bar = na var int exit_bar = na // Entry condition: Close price crosses above the 45-day moving average to enter the position if (not in_long_position and ta.crossover(close, ma) and not na(ma[1]) and close > ma and close[1] < ma[1]) in_long_position := true entry_bar := bar_index // Exit condition: Close the position after holding for 8 trading days if (in_long_position and bar_index - entry_bar >= 8) in_long_position := false exit_bar := bar_index // Re-entry condition: Wait for price to cross over the 45-day moving average again if (not in_long_position and ta.crossover(close, ma) and not na(ma[1]) and close > ma and close[1] > ma[1] and (na(exit_bar) or bar_index - exit_bar >= 8)) in_long_position := true entry_bar := bar_index // Execute long entry and exit if (in_long_position) strategy.entry("Long", strategy.long) if (not in_long_position) strategy.close("Long")