
La estrategia de cruce de promedio móvil dinámico es una estrategia típica de seguimiento de la tendencia. La estrategia se desarrolla mediante el cálculo de promedios móviles rápidos (Fast MA) y promedios móviles lentos (Slow MA) y la generación de señales de compra y venta cuando se cruzan para capturar los puntos de inflexión de la tendencia del mercado.
La lógica central de esta estrategia es: una señal de compra se produce cuando la media móvil rápida cruza la media móvil lenta desde abajo; una señal de venta se produce cuando la media móvil rápida cruza la media móvil lenta desde arriba hacia abajo.
Las medias móviles son más sensibles a los cambios de tendencia; las medias móviles más lentas son más estables y eliminan los efectos de las fluctuaciones a corto plazo. Cuando la línea media rápida y lenta ocurre en un forro de oro (cruzando de abajo hacia arriba), indica que el mercado entra en una situación de movimiento múltiple; cuando ocurre un forro muerto (cruzando de arriba hacia abajo), indica que entra en una situación de movimiento en blanco.
La estrategia emite una señal de negociación inmediata al cruzar la línea de equilibrio, adopta una estrategia de seguimiento de tendencias, sigue las tendencias del mercado y obtiene mayores ganancias. Al mismo tiempo, la estrategia establece un punto de parada y un punto de parada, y controla el riesgo estrictamente.
Se puede mejorar mediante la optimización de los parámetros, el ajuste de la longitud de los ciclos medidos o la adición de condiciones de filtración.
La estrategia de cruce de línea uniforme dinámica es más eficaz en general, y puede mejorar aún más el rendimiento de la estrategia mediante la optimización de los parámetros de ajuste. La estrategia es fácil de implementar y es adecuada para la práctica 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)