
Esta estrategia combina dos métodos de seguimiento de tendencias y análisis de la dinámica, utilizando el promedio móvil simple (SMA) y el indicador de dispersión de convergencia de las medias móviles (MACD) para identificar oportunidades potenciales de negociación. La estrategia determina la tendencia general del mercado a través del indicador de Trendilo (un indicador de tendencia basado en SMA), mientras que utiliza el cruce de la línea de cero del MACD para capturar cambios en la dinámica a corto plazo.
La lógica central de la estrategia se basa en los siguientes elementos clave:
Concretamente, cuando la línea MACD cruza la línea cero desde abajo (corrida hacia arriba) y el precio de cierre está por encima de la línea Trendilo, se activa una señal de más. Por el contrario, cuando la línea MACD cruza la línea cero desde arriba (corrida hacia abajo) y el precio de cierre está por debajo de la línea Trendilo, se activa una señal de vacío.
La estrategia combina hábilmente el seguimiento de tendencias y el análisis de la dinámica, ofreciendo a los operadores un marco de análisis de mercado relativamente completo a través de la sinergia de Trendilo y MACD. El método dinámico de gestión de riesgos aumenta la adaptabilidad de la estrategia, lo que le permite mantener la estabilidad en diferentes entornos de mercado. Sin embargo, los operadores aún deben ser cautelosos al usar esta estrategia, especialmente en la optimización de parámetros y el control de riesgos.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-09-24 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("NNFX Trendilo + Zero MACD Strategy", overlay=true)
// --- Inputs ---
atrPeriod = input.int(14, title="ATR Period")
stopLossMultiplier = input.float(1.5, minval=0.0, maxval = 20.0, step = 0.1 ,title="Stop Loss Multiplier")
takeProfitMultiplier = input.float(2.0, minval=0.0 , maxval = 20.0, step = 0.1,title="Take Profit Multiplier")
// --- Trendilo ---
trendiloPeriod = input.int(50, title="Trendilo Period")
trendilo = ta.sma(close, trendiloPeriod)
// --- MACD ---
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
macdZeroCrossUp = ta.crossover(macdLine, 0)
macdZeroCrossDown = ta.crossunder(macdLine, 0)
// --- ATR for Stop Loss and Take Profit ---
atr = ta.atr(atrPeriod)
stopLoss = atr * stopLossMultiplier
takeProfit = atr * takeProfitMultiplier
// --- Trading Logic ---
longCondition = macdZeroCrossUp and close > trendilo
shortCondition = macdZeroCrossDown and close < trendilo
// --- Execute Long Trades ---
if (longCondition)
strategy.entry("Buy", strategy.long)
strategy.exit("Take Profit/Stop Loss", "Buy", limit=close + takeProfit, stop=close - stopLoss)
// --- Execute Short Trades ---
if (shortCondition)
strategy.entry("Sell", strategy.short)
strategy.exit("Take Profit/Stop Loss", "Sell", limit=close - takeProfit, stop=close + stopLoss)
// --- Plot Signals ---
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")
// --- Plot Trendilo ---
plot(trendilo, color=color.blue, linewidth=2)