
La stratégie du double SMA est une stratégie de négociation basée sur l’analyse technique qui génère des signaux d’achat et de vente basés sur deux moyennes mobiles simples (SMA). Elle vise à capturer les mouvements de prix à court et à moyen terme d’une action.
La stratégie utilise deux indicateurs SMA, à savoir une fenêtre de temps à court et à long terme - SMA rapide (durée de 9 cycles) et SMA lent (durée de 45 cycles).
Lorsque le prix de clôture d’une action dépasse la moyenne des SMA rapides et des SMA lents, la stratégie génère un signal de surenchère/achat et entre dans une position surenchère.
Lorsque le prix dépasse les deux courbes moyennes du SMA, il indique le début d’une tendance à la baisse, à ce moment-là la stratégie génère un signal de creux / vente et entre dans une position de creux.
Le niveau de stop loss est dynamiquement réglé sur le plus haut niveau de la veille (pour les transactions sur des titres) et le plus bas niveau de la veille (pour les transactions sur des titres).
Les principaux avantages de cette stratégie sont:
Cependant, comme pour toutes les stratégies d’analyse technique, les signaux sont souvent erronés en cas de choc. Des améliorations peuvent être apportées en ajoutant d’autres indicateurs tels que le RSI.
Les principaux risques de cette stratégie sont:
Vulnérabilité aux chocs et aux faux signaux: dépendant uniquement de la croisée SMA, il peut y avoir des signaux arbitraires dans des situations de correction ou de choc, entraînant des coûts de négociation inutiles. Cela peut être atténué par une combinaison avec d’autres indicateurs tels que le RSI.
vulnérable à des revers de tendance soudains: un revirement rapide après l’entrée en bourse peut rapidement dépasser le seuil de rupture. Ce risque peut être réduit en optimisant la longueur du SMA ou en ajoutant d’autres filtres.
Risque d’hyperadaptation des paramètres optimisés: une optimisation généralisée de la longueur SMA et d’autres paramètres peut entraîner une mauvaise performance du disque dur. Un retour d’expérience robuste est nécessaire sur une longue période.
Cette stratégie peut être renforcée par:
En résumé, la stratégie de dynamique à double SMA offre une méthode pour capturer directement les tendances à court et à moyen terme. Bien que sa méthode soit basique, l’ajout de filtres supplémentaires, de stop-loss dynamique et d’optimisation prudente peut aider à améliorer son retour sur ajustement au risque. Utilisé de manière sélective dans les tendances à la hausse et à la baisse des actions, il peut capturer des tendances 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)