La estrategia de tendencia de cruce de promedios móviles es una estrategia de seguimiento de tendencias basada en señales de cruce de promedios móviles.
La estrategia utiliza los cruces del histograma MACD y la línea de señal para identificar el comienzo y el final de las tendencias. Específicamente, construye el histograma MACD basado en la EMA rápida de 12 períodos y la EMA lenta de 26 períodos. Cuando el histograma cruza por encima de la línea de señal, se genera una señal de compra, lo que indica el comienzo de una tendencia alcista. Cuando el histograma cruza por debajo de la línea de señal, se activa una señal de venta, lo que marca el comienzo de una tendencia bajista.
Para las entradas, la estrategia solo dura cuando se genera una señal de compra en el gráfico de 15 minutos para capitalizar la etapa temprana de los comienzos de la tendencia.
La mayor ventaja de esta estrategia es su capacidad para detectar a tiempo los comienzos de tendencia y salir de las señales de reversión, logrando buenas relaciones riesgo-recompensa.
También existen algunos riesgos, principalmente en los siguientes aspectos:
Para mitigar los riesgos, se pueden realizar optimizaciones en:
Los principales aspectos para optimizar aún más la estrategia incluyen:
En general, la Moving Average Crossover Trend Strategy es un sistema de seguimiento de tendencias simple y práctico. Capitaliza las tendencias identificando comienzos y finales utilizando los cruces MACD, y combinando posiciones a corto y largo plazo. Las ventajas se encuentran en sus entradas oportunas, paradas efectivas y riesgo-recompensa equilibrado.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="Moving Average Convergence Divergence", shorttitle="MACD", overlay=true) // Getting inputs fast_length = input(title="Fast Length", defval=12) slow_length = input(title="Slow Length", defval=26) src = input(title="Source", defval=close) signal_length = input.int(title="Signal Smoothing", minval=1, maxval=50, defval=9) sma_source = input.string(title="Oscillator MA Type", defval="EMA", options=["SMA", "EMA"]) sma_signal = input.string(title="Signal Line MA Type", defval="EMA", options=["SMA", "EMA"]) // Calculating MACD fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length) slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length) macd = fast_ma - slow_ma signal_line = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length) // Entry conditions longCondition = macd < 0 and ta.crossover(macd, signal_line) shortCondition = ta.crossover(signal_line, macd) // Plot signals plotshape(series=longCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal") plotshape(series=shortCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal") // Strategy if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short)