La stratégie du double SMA Momentum est une stratégie de trading basée sur l'analyse technique qui génère des signaux d'achat et de vente basés sur deux indicateurs simples de moyenne mobile (SMA).
La stratégie utilise deux indicateurs SMA avec des fenêtres de temps courtes et longues: une SMA rapide (longueur de 9 périodes) et une SMA lente (longueur de 45 périodes).
Il génère un signal long/achat lorsque le prix de clôture de l'action franchit les lignes SMA rapide et lente, indiquant le début d'une tendance haussière.
Il génère un signal short/sell lorsque le prix traverse les deux lignes SMA, indiquant le début d'une tendance à la baisse.
Les niveaux de stop loss sont fixés dynamiquement au niveau le plus élevé de la journée précédente (pour les transactions courtes) et au niveau le plus bas de la journée précédente (pour les transactions longues).
Les principaux avantages de cette stratégie sont les suivants:
Cependant, comme toutes les stratégies d'analyse technique, il peut sous-performer sur les marchés à plage et à ciseaux avec de fréquents faux signaux.
Les principaux risques de cette stratégie sont les suivants:
Prédisposé aux faux signaux: Comme il repose uniquement sur les croisements SMA, la stratégie peut faire face à des faux signaux pendant les marchés latéraux ou agités, ce qui crée des coûts de négociation inutiles.
Vulnérable aux renversements soudains de tendance: les renversements rapides après les entrées de croisement SMA peuvent atteindre les niveaux de stop loss rapidement avant la formation d'une tendance. Ce risque peut être réduit en optimisant les longueurs SMA ou en ajoutant d'autres filtres.
Risque d'optimisation excessive due à des ajustements de paramètres: une optimisation extensive des longueurs SMA et d'autres paramètres pour que la courbe s'adapte aux données historiques peut entraîner de mauvaises performances dans le trading en direct.
Les moyens de renforcer cette stratégie sont les suivants:
Ajout d'autres indicateurs tels que le RSI pour une confirmation commerciale supplémentaire afin d'améliorer le timing et la précision des signaux
L'intégration de méthodes dynamiques de placement de stop loss telles que ATR ou les sorties à l'aide d'un lustre pour mieux s'adapter à la volatilité du marché
Optimisation des longueurs de la SMA en fonction de la volatilité historique et des délais de négociation pour les différents titres
Ajout d'une gestion de fonds solide et de règles de dimensionnement des positions pour maximiser les rendements et limiter les prélèvements
En résumé, la stratégie Dual SMA Momentum offre une approche simple pour négocier les tendances à court et moyen terme. Bien que fondamentale dans son approche, des raffinements tels que des filtres supplémentaires, des arrêts dynamiques et des optimisations prudentes peuvent aider à améliorer ses rendements ajustés au risque. Utilisée de manière sélective pendant les tendances haussières et baissières des actions, elle peut capturer des mouvements rentables.
/*backtest start: 2023-01-10 00:00:00 end: 2024-01-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("SMA Crossover Strategy", overlay=true) // Input parameters fast_length = input(9, title="Fast SMA Length") slow_length = input(45, title="Slow SMA Length") // Calculate moving averages fast_sma = ta.sma(close, fast_length) slow_sma = ta.sma(close, slow_length) // Buy condition buy_condition = ta.crossover(close, fast_sma) and ta.crossover(close, slow_sma) // Sell condition sell_condition = ta.crossunder(close, fast_sma) and ta.crossunder(close, slow_sma) // Calculate stop loss levels prev_low = request.security(syminfo.tickerid, "1D", low[1], lookahead=barmerge.lookahead_on) prev_high = request.security(syminfo.tickerid, "1D", high[1], lookahead=barmerge.lookahead_on) // Plot signals on the chart plotshape(buy_condition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small) plotshape(sell_condition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small) // Strategy exit conditions long_stop_loss = sell_condition ? prev_low : na short_stop_loss = buy_condition ? prev_high : na strategy.exit("Long Exit", from_entry="Long", when=sell_condition, stop=long_stop_loss) strategy.exit("Short Exit", from_entry="Short", when=buy_condition, stop=short_stop_loss) strategy.entry("Long", strategy.long, when=buy_condition) strategy.entry("Short", strategy.short, when=sell_condition)