Cet article présente une stratégie de trading qui combine deux indicateurs techniques: MACD et Supertrend. La stratégie utilise les signaux de croisement de l'indicateur MACD et la direction de tendance de l'indicateur Supertrend pour déterminer les points d'entrée et de sortie, dans le but de tirer profit des marchés en tendance.
L'indicateur MACD est calculé en soustrayant la moyenne mobile lente (par défaut 26 périodes) de la moyenne mobile rapide (par défaut 12 périodes), puis en calculant la moyenne mobile de 9 périodes du MACD comme ligne de signal. Un croisement haussier se produit lorsque la ligne MACD traverse au-dessus de la ligne de signal, indiquant un signal long, tandis qu'un croisement baissier se produit lorsque la ligne MACD traverse en dessous de la ligne de signal, indiquant un signal court. L'indicateur Supertrend combine l'indicateur MAC de volatilité ATR.
Cet article présente une stratégie de trading basée sur l'indicateur MACD et l'indicateur Supertrend. La stratégie se négocie sur les marchés en tendance en utilisant le jugement de tendance du MACD et le filtrage de direction du Supertrend, tout en utilisant des croisements de lignes de signal pour sortir des positions en temps opportun afin de contrôler les retraits. Les avantages de la stratégie résident dans sa logique simple et sa forte capacité de capture de tendance, mais elle est également confrontée à des risques tels que l'applicabilité des paramètres, le décalage des signaux et le trading fréquent.
/*backtest start: 2024-05-01 00:00:00 end: 2024-05-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="MACD + Supertrend Strategy", overlay=true) // MACD Calculation fastLength = 12 slowLength = 26 signalSmoothing = 9 macdSrc = close // MACD Line fastMA = ta.ema(macdSrc, fastLength) slowMA = ta.ema(macdSrc, slowLength) macdLine = fastMA - slowMA // MACD Signal Line signalMA = ta.ema(macdLine, signalSmoothing) // MACD Histogram histogram = macdLine - signalMA // Supertrend Calculation supertrendATRLength = 10 supertrendFactor = 3.0 [supertrend, _] = ta.supertrend(supertrendFactor, supertrendATRLength) // Entry and Exit Conditions longCondition = (macdLine > signalMA) and (supertrend < close) shortCondition = (signalMA > macdLine) and (supertrend > close) // Long Entry if longCondition strategy.entry("Long", strategy.long) // Long Exit (Sell) if signalMA > macdLine strategy.close("Long") // Short Entry if shortCondition strategy.entry("Short", strategy.short) // Short Exit (Cover) if macdLine > signalMA strategy.close("Short") // Close Long Position if short condition is met if shortCondition strategy.close("Long") // Close Short Position if long condition is met if longCondition strategy.close("Short") // Plotting plotshape(series=longCondition, title="Long Entry Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="Long") plotshape(series=shortCondition, title="Short Entry Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="Short") // Alerts alertcondition(longCondition, title='Long Entry Signal', message='MACD crossover and Supertrend below close price') alertcondition(signalMA > macdLine, title='Long Exit Signal', message='MACD signal line crosses above MACD line') alertcondition(shortCondition, title='Short Entry Signal', message='MACD crossunder and Supertrend above close price') alertcondition(macdLine > signalMA, title='Short Exit Signal', message='MACD line crosses above MACD signal line')