
Cette stratégie combine deux méthodes de suivi de la tendance et d’analyse de la dynamique, utilisant les indicateurs de la moyenne mobile simple (SMA) et de la dispersion de la convergence des moyennes mobiles (MACD) pour identifier les opportunités de négociation potentielles. La stratégie utilise l’indicateur Trendilo (un indicateur de tendance basé sur les SMA) pour déterminer la tendance globale du marché, tout en utilisant la ligne zéro de la croisée des MACD pour capturer les changements de dynamique à court terme.
La logique centrale de la stratégie repose sur les éléments clés suivants:
Plus précisément, un signal de plus est déclenché lorsque la ligne MACD traverse la ligne zéro par le bas et que le prix de clôture est supérieur à la ligne Trendilo. En revanche, un signal de vide est déclenché lorsque la ligne MACD traverse la ligne zéro par le haut et que le prix de clôture est inférieur à la ligne Trendilo. Après l’entrée, la stratégie utilise des niveaux de stop-loss et de gain basés sur l’ATR pour gérer les risques et bloquer les bénéfices.
La stratégie combine habilement le suivi des tendances et l’analyse de la dynamique, offrant aux traders un cadre d’analyse de marché relativement complet grâce à la synergie de Trendilo et MACD. La méthode de gestion des risques dynamique améliore l’adaptabilité de la stratégie, lui permettant de rester stable dans différents environnements de marché. Cependant, les traders doivent toujours être prudents dans l’utilisation de cette stratégie, en particulier en ce qui concerne l’optimisation des paramètres et le contrôle des risques.
/*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)