La estrategia de cruce de promedios móviles dinámicos es una estrategia típica de seguimiento de tendencias que genera señales de compra y venta mediante el cálculo de la media móvil rápida (MA rápida) y la media móvil lenta (MA lenta) y la detección de cruces entre ellos para capturar puntos de inversión de tendencia en el mercado.
La lógica central de esta estrategia es: cuando el promedio móvil rápido cruza por encima del promedio móvil lento desde abajo, se genera una señal de compra; cuando el promedio móvil rápido cruza por debajo del promedio móvil lento desde arriba, se genera una señal de venta.
Los promedios móviles pueden filtrar eficazmente el ruido del mercado y capturar las tendencias de precios. El promedio móvil rápido es más sensible y puede capturar los cambios en la tendencia a tiempo; el promedio móvil lento es más estable y puede filtrar eficazmente el impacto de las fluctuaciones a corto plazo. Cuando los MA rápidos y lentos tienen una cruz de oro (que se mueve hacia arriba desde abajo), indica que el mercado ha entrado en una fase alcista; cuando ven una cruz de muerte (que se mueve hacia abajo desde arriba), indica que el mercado ha entrado en una fase bajista.
Esta estrategia emitirá inmediatamente señales de negociación cuando las medias móviles se crucen, adoptará una estrategia de persecución de tendencias para seguir las tendencias del mercado y obtener mayores ganancias.
Las mejoras pueden realizarse optimizando los parámetros, ajustando los períodos de media móvil, añadiendo condiciones de filtro, etc.
La estrategia de cruce de promedios móviles dinámicos en general tiene un buen rendimiento. Se pueden hacer mejoras adicionales optimizando los parámetros. La estrategia es fácil de implementar y adecuada para la práctica de los principiantes.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Simple Moving Average Crossover", shorttitle="SMAC", overlay=true) // Define input parameters fast_length = input.int(9, title="Fast MA Length") slow_length = input.int(21, title="Slow MA Length") stop_loss = input.float(1, title="Stop Loss (%)", minval=0, maxval=100) take_profit = input.float(2, title="Take Profit (%)", minval=0, maxval=100) // Calculate moving averages fast_ma = ta.sma(close, fast_length) slow_ma = ta.sma(close, slow_length) // Define conditions for long and short signals long_condition = ta.crossover(fast_ma, slow_ma) short_condition = ta.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) // Execute long and short trades if (long_condition) strategy.entry("Long", strategy.long) if (short_condition) strategy.entry("Short", strategy.short) // Set stop loss and take profit levels stop_loss_price = close * (1 - stop_loss / 100) take_profit_price = close * (1 + take_profit / 100) strategy.exit("Take Profit/Stop Loss", stop=stop_loss_price, limit=take_profit_price) // Plot signals on the chart plotshape(series=long_condition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small) plotshape(series=short_condition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)