
La stratégie est basée sur l’indicateur MACD et utilise le croisement de la ligne MACD et de la ligne Signal dans l’indicateur MACD pour juger du signal de transaction. Un signal de commutation est généré lorsque la ligne Signal est traversée par la ligne MACD et un signal de commutation est généré lorsque la ligne Signal est traversée par la ligne MACD.
L’indicateur MACD est composé de la ligne DIF et de la ligne DEA, la ligne DIF étant la différence entre la moyenne rapide et la moyenne lente, la ligne DEA étant la moyenne mobile de la ligne DIF. Lorsque la ligne DIF traverse la ligne DEA, cela indique que le cours de l’action est sorti de la zone de survente et commence à monter, générant un signal de plus.
La stratégie est basée sur l’indicateur MACD, sur le croisement de la ligne MACD et de la ligne Signal pour juger des signaux de négociation, tout en utilisant le prix minimum et le prix maximum de la ligne K précédente comme point d’arrêt, le point d’arrêt étant fixé à 4 fois l’ATR. La logique de la stratégie est claire, facile à mettre en œuvre et permet de mieux capturer la tendance des cours des actions. Cependant, la stratégie comporte également certains risques, tels que le retard de l’indicateur, la simple configuration du point d’arrêt.
/*backtest
start: 2023-05-05 00:00:00
end: 2024-05-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("MACD Strategy", overlay=true)
// Define MACD
[macdLine, signalLine, _] = macd(close, 12, 26, 9)
// Define conditions for long entry
longCondition = crossover(macdLine, signalLine)
// Define conditions for short entry
shortCondition = crossunder(macdLine, signalLine)
// Define stop loss for long entry
longStopLoss = low[1] // Previous candle low
// Define stop loss for short entry
shortStopLoss = high[1] // Previous candle high
// Define take profit for both long and short entries
takeProfit = close + (close - longStopLoss) * 4 // 4 x ATR
// Execute long entry
if (longCondition)
strategy.entry("Buy", strategy.long)
strategy.exit("TP/SL", "Buy", stop=longStopLoss, limit=takeProfit)
// Execute short entry
if (shortCondition)
strategy.entry("Sell", strategy.short)
strategy.exit("TP/SL", "Sell", stop=shortStopLoss, limit=takeProfit)