Stratégie de dynamique double SMA

Auteur:ChaoZhang est là., Date: 2024-01-17 15:05:08 Je suis désolé
Les étiquettes:

img

Résumé

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 logique de la stratégie

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).

Analyse des avantages

Les principaux avantages de cette stratégie sont les suivants:

  1. Utilise une combinaison de SMA à court et à long terme pour capturer les tendances émergentes à moyen terme
  2. Le placement de stop loss adaptatif réduit le risque et permet de réaliser des bénéfices
  3. Facile à comprendre et à mettre en œuvre
  4. Performe bien sur les marchés et les actions en période de tendance

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.

Analyse des risques

Les principaux risques de cette stratégie sont les suivants:

  1. 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.

  2. 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.

  3. 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.

Des possibilités d'amélioration

Les moyens de renforcer cette stratégie sont les suivants:

  1. 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

  2. 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é

  3. Optimisation des longueurs de la SMA en fonction de la volatilité historique et des délais de négociation pour les différents titres

  4. 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

Conclusion

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)


Plus de