
La stratégie est un système de suivi des tendances combinant le MACD (indicateur de tendance des moyennes mobiles) et le SAR (indicateur de revers de stop loss). La stratégie utilise des croisements de lignes rapides du MACD pour confirmer le mouvement de la tendance, tout en utilisant des points SAR pour confirmer la direction de la tendance et définir un stop loss mobile.
La logique centrale de la stratégie est composée de deux parties:
Règles d’entrée:
Règles du match:
Ajouter un filtre d’environnement de marché : On peut introduire des indicateurs de volatilité (comme l’ATR) pour juger de l’état du marché, réduire la fréquence des transactions ou suspendre les transactions pendant les périodes de faible volatilité.
Améliorer le mécanisme de stop loss : En plus de l’arrêt SAR, il est possible d’augmenter la combinaison d’arrêt à taux fixe et d’arrêt mobile, ce qui améliore la stabilité du contrôle des risques.
Sélection des paramètres d’optimisation : Les combinaisons de paramètres MACD et SAR peuvent être automatiquement optimisées pour différents cycles de marché grâce à des méthodes d’apprentissage automatique.
Pour plus d’analyses de volume: La combinaison d’indicateurs de convergence permet de confirmer la force de la tendance et d’améliorer la fiabilité du signal.
La stratégie a des avantages tels que la clarté des signaux, la maîtrise des risques et la capacité d’adaptation, mais elle présente également des limites telles que la dépendance à la tendance et le retard de signal. Des améliorations dans des directions telles que l’ajout de filtres d’environnement de marché et l’optimisation des mécanismes d’arrêt des pertes peuvent améliorer encore la stabilité et la pratique de la stratégie.
/*backtest
start: 2024-02-21 00:00:00
end: 2024-11-25 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("MACD + Parabolic SAR Strategy", shorttitle="MACD+SAR", overlay=true)
//========== User Inputs ==========//
// MACD parameters
fastLength = input.int(12, "MACD Fast Length")
slowLength = input.int(26, "MACD Slow Length")
signalLength = input.int(9, "MACD Signal Length")
// SAR parameters (start, step, maximum)
afStart = input.float(0.02, "SAR Start")
afIncrement = input.float(0.02, "SAR Increment")
afMax = input.float(0.2, "SAR Max")
//========== MACD Calculation ==========//
[macdLine, signalLine, histLine] = ta.macd(close, fastLength, slowLength, signalLength)
//========== Parabolic SAR Calculation ==========//
sarValue = ta.sar(afStart, afIncrement, afMax)
//========== Entry Conditions ==========//
// Long: MACD > Signal + close > SAR
longCondition = (macdLine > signalLine) and (close > sarValue)
// Short: MACD < Signal + close < SAR
shortCondition = (macdLine < signalLine) and (close < sarValue)
//========== Enter Positions ==========//
if longCondition
strategy.entry("Long", strategy.long)
if shortCondition
strategy.entry("Short", strategy.short)
//========== Exit Positions on Opposite Signal ==========//
if strategy.position_size > 0 and shortCondition
strategy.close("Long", comment="Exit Long")
if strategy.position_size < 0 and longCondition
strategy.close("Short", comment="Exit Short")