Cette stratégie est basée sur l'indicateur MACD et utilise le croisement de la ligne MACD et de la ligne de signal pour déterminer les signaux de trading. Lorsque la ligne MACD traverse au-dessus de la ligne de signal, elle génère un signal long, et lorsque la ligne MACD traverse en dessous de la ligne de signal, elle génère un signal court. La stratégie utilise également le prix le plus bas de la bougie précédente comme stop loss pour les positions longues et le prix le plus élevé de la bougie précédente comme stop loss pour les positions courtes. Le profit est fixé à 4 fois l'ATR (Average True Range).
L'indicateur MACD se compose de la ligne DIF et de la ligne DEA. La ligne DIF est la différence entre la moyenne mobile rapide et la moyenne mobile lente, tandis que la ligne DEA est la moyenne mobile de la ligne DIF. Lorsque la ligne DIF traverse au-dessus de la ligne DEA, elle indique que le prix a quitté la zone de survente et a commencé à augmenter, générant un signal long. Lorsque la ligne DIF traverse au-dessous de la ligne DEA, elle indique que le prix a quitté la zone de surachat et a commencé à chuter, générant un signal court.
Cette stratégie est basée sur l'indicateur MACD et utilise le croisement de la ligne MACD et de la ligne de signal pour déterminer les signaux de trading. Elle utilise également le prix le plus bas et le prix le plus élevé de la bougie précédente comme stop loss, et fixe le take profit à 4 fois l'ATR. La logique de la stratégie est claire et facile à mettre en œuvre, et peut bien capturer les tendances des prix.
/*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)