Esta estrategia es una estrategia de negociación simple de cruce de la media móvil basada en el cruce de la media móvil corta y larga. Utiliza medias móviles de 34 ciclos y 89 ciclos para observar su cruce como una señal de compra y venta en el período de la mañana. Genera señales de compra cuando la media móvil corta rompe la media móvil larga desde abajo; genera señales de venta cuando rompe desde arriba.
La lógica central de la estrategia se basa en el cruce de las medias móviles a corto y largo plazo como señal de negociación. En particular, la estrategia define medias móviles simples a corto y largo plazo (SMA) de 34 ciclos y 89 ciclos. Solo se observa el cruce de los dos SMA durante el horario de la mañana (de 08:00 a 10:00). Cuando el SMA a corto plazo rompe el SMA a largo plazo desde abajo, se considera que el mercado está en una tendencia al alza, generando así una señal de compra; cuando el SMA a corto plazo rompe el SMA a largo plazo desde arriba, se considera que el mercado está en una tendencia a la baja, generando así una señal de venta.
Después de recibir una señal de compra o venta, la estrategia entra en la posición y establece una condición para salir de la posición, es decir, después de entrar en la posición y mantener un número de líneas de raíz K especificadas (default 3 raíces), la estrategia se detiene de forma activa para salir de la posición. Esto puede bloquear una parte de los beneficios y evitar que las pérdidas se extiendan aún más.
Es importante tener en cuenta que la estrategia solo identifica las señales de cruce en los períodos de tiempo tempranos. Esto se debe a que durante este período el volumen de comercio del mercado es mayor y las señales de conversión de tendencia son más confiables.
La estrategia tiene las siguientes ventajas:
Usando una ley de cruce de media móvil simple y universal, fácil de entender, para principiantes
Identifica las señales sólo en los períodos de tiempo del disco temprano con más señales de alta calidad y filtra las falsas señales de otros períodos de tiempo.
Se establecen condiciones para detener pérdidas a tiempo, bloquear parte de las ganancias y reducir el riesgo de pérdidas.
Más parámetros personalizables, que se pueden ajustar según el mercado y el estilo individual
Es fácil de ampliar y se pueden diseñar estrategias más complejas basadas en este marco en combinación con otros indicadores
La estrategia también presenta algunos riesgos, principalmente en los siguientes aspectos:
Las medias móviles en sí mismas son muy rezagadas y pueden perder puntos de inflexión de precios a corto plazo.
Se basa únicamente en indicadores simples y puede fallar fácilmente en un entorno de mercado específico (convulsiones de tendencias, clasificación de zonas, etc.)
El mal ajuste de la posición de parada puede causar pérdidas innecesarias.
La configuración incorrecta de los parámetros (ciclos de media móvil, ciclos de tenencia, etc.) también puede afectar el rendimiento de la estrategia.
Las soluciones correspondientes:
En combinación con otros indicadores previos, mejora la sensibilidad a los cambios a corto plazo
Aumentar las condiciones de filtración para evitar el efecto de las señales de vacío en los mercados turbulentos e interbancarios
Optimización de la lógica de stop loss para ajustar el rango de stop loss en función de la dinámica de la volatilidad del mercado
Optimización de parámetros multicombinados para encontrar el mejor ajuste de parámetros
La estrategia también tiene mucho espacio para la optimización, principalmente en los siguientes aspectos:
Añadir otras condiciones de filtración para evitar el efecto de señales de baja en los mercados turbulentos e intercalados
Combinado con una estrategia de indicadores de movilidad para identificar señales de ruptura más potentes
Optimiza los parámetros de ciclo de las medias móviles para encontrar la mejor combinación de parámetros
Optimiza automáticamente el stop loss según la volatilidad del mercado
Intentar optimizar automáticamente toda la estrategia con tecnología de aprendizaje automático
Intentar combinar con otras estrategias para diseñar sistemas multiestratégicos más complejos
La estrategia es simple y práctica en su conjunto, y es adecuada para el aprendizaje de referencia para principiantes. Representa el modelo típico de la estrategia de cruce de media móvil, que controla el riesgo mediante el establecimiento de pérdidas paradas. Pero la estrategia puede optimizarse aún más para que funcione mejor y se adapte a más entornos de mercado. Los inversores pueden ser creativos sobre esta base y diseñar estrategias de negociación más avanzadas.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("34 89 SMA Crossover Strategy", overlay=true) // Define the length for the SMAs short_length = input(34, title="Short SMA Length") long_length = input(89, title="Long SMA Length") exit_candles = input(3, title="Exit after how many candles?") exit_at_open = input(true, title="Exit at Open?") // Define morning session morning_session = input("0800-1000", "Morning Session") // Calculate SMAs short_sma = ta.sma(close, short_length) long_sma = ta.sma(close, long_length) // Function to check if current time is within specified session in_session(session) => session_start = na(time(timeframe.period, "0800-1000")) ? na : true session_start // Condition for buy signal (short SMA crosses over long SMA) within specified trading hours buy_signal = ta.crossover(short_sma, long_sma) // Condition for sell signal (short SMA crosses under long SMA) within specified trading hours sell_signal = ta.crossunder(short_sma, long_sma) // Function to exit the trade after specified number of candles var int trade_entry_bar = na var int trade_exit_bar = na if (buy_signal or sell_signal) trade_entry_bar := bar_index if (not na(trade_entry_bar)) trade_exit_bar := trade_entry_bar + exit_candles // Exit condition exit_condition = (not na(trade_exit_bar) and (exit_at_open ? bar_index + 1 >= trade_exit_bar : bar_index >= trade_exit_bar)) // Execute trades if (buy_signal) strategy.entry("Buy", strategy.long) if (sell_signal) strategy.entry("Sell", strategy.short) if (exit_condition) strategy.close("Buy") strategy.close("Sell") // Plot SMAs on the chart plot(short_sma, color=color.blue, linewidth=1) plot(long_sma, color=color.red, linewidth=1)