Cet article présente une stratégie de suivi des tendances boursières basée sur l'indicateur de l'indice de dynamique stochastique (SMI).
L'indicateur SMI est utilisé pour identifier les zones de surachat et de survente. Les valeurs dans la zone rouge indiquent que le stock est survendu tandis que la zone verte signifie des conditions de surachat. Les signaux de trading sont générés à partir du croisement entre SMI et sa ligne EMA.
Plus précisément, un signal long est déclenché lorsque le SMI dépasse sa EMA et que le SMI est inférieur au niveau de survente de -40. Un signal court est déclenché lorsque le SMI dépasse sa EMA et que le SMI dépasse le niveau de surachat de 40.
En faisant cela, la stratégie peut capturer l'inversion des prix et mettre en œuvre acheter bas vendre haut.
Le plus grand avantage réside dans sa capacité à suivre les tendances.
En outre, le SMI lui-même a la caractéristique de lisser les prix. Par rapport aux moyennes mobiles simples, il répond plus régulièrement aux changements de prix. Les signaux de trading sont plus fiables sans être facilement affectés par le bruit du marché.
En résumé, la stratégie tire parti avec succès de la force de SMI pour suivre efficacement les tendances boursières.
La stratégie repose fortement sur l'indicateur SMI et est donc confrontée à certains risques.
Premièrement, le SMI est sensible au réglage des paramètres. Des paramètres incorrects peuvent considérablement compromettre la qualité du signal. Des tests approfondis sont nécessaires pour trouver l'optimum.
En outre, aucun indicateur n'est à l'abri de faux signaux, y compris le SMI. Des pannes peuvent survenir lors d'une forte volatilité qui entraîne des pertes inutiles.
Enfin, il n'atténue pas le risque systémique du marché. Des pertes importantes sont inévitables si l'ensemble du marché plonge dans un état baissier. Cette limitation s'applique à toutes les stratégies techniques.
La stratégie peut être encore améliorée par les aspects suivants:
L'incorporation d'autres indicateurs pour former un système de syndication contribue à augmenter la fiabilité et la rentabilité du signal. Des facteurs fondamentaux et des mesures de volatilité peuvent être ajoutés.
Utilisez l'apprentissage automatique pour optimiser automatiquement les paramètres SMI basés sur de grandes données historiques.
Ajouter des mécanismes de stop loss. Un stop loss raisonnable réduit énormément les pertes d'une seule transaction et évite les risques.
Combiner les règles quantitatives de sélection des stocks afin d'améliorer la qualité globale du stock.
Dans cet article, nous introduisons la stratégie Momentum Surfer qui suit les tendances avec l'indicateur SMI. Sa plus grande force réside dans la capture des renversements et le suivi des tendances en douceur. Certains risques comme la sensibilité des paramètres et la qualité du signal sont présents. Nous suggérons quelques moyens de l'améliorer. Dans l'ensemble, la stratégie est attrayante pour le trading d'algo et mérite une véritable vérification de trading.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Stochastics Momentum Index Strategy", shorttitle="Stoch_MTM_Doan", overlay=true) // Input parameters a = input.int(10, "Percent K Length") b = input.int(3, "Percent D Length") ob = input.int(40, "Overbought") os = input.int(-40, "Oversold") // Range Calculation ll = ta.lowest(low, a) hh = ta.highest(high, a) diff = hh - ll rdiff = close - (hh+ll)/2 avgrel = ta.ema(ta.ema(rdiff,b),b) avgdiff = ta.ema(ta.ema(diff,b),b) // SMI calculations SMI = avgdiff != 0 ? (avgrel/(avgdiff/2)*100) : 0 SMIsignal = ta.ema(SMI,b) emasignal = ta.ema(SMI, 10) // Color Definition for Stochastic Line col = SMI >= ob ? color.green : SMI <= os ? color.red : color.white plot(SMIsignal, title="Stochastic", color=color.white) plot(emasignal, title="EMA", color=color.yellow) level_40 = ob level_40smi = SMIsignal > level_40 ? SMIsignal : level_40 level_m40 = os level_m40smi = SMIsignal < level_m40 ? SMIsignal : level_m40 plot(level_40, "Level ob", color=color.red) plot(level_40smi, "Level ob SMI", color=color.red, style=plot.style_line) plot(level_m40, "Level os", color=color.green) plot(level_m40smi, "Level os SMI", color=color.green, style=plot.style_line) //fill(level_40, level_40smi, color=color.red, transp=ob, title="OverSold") //fill(level_m40, level_m40smi, color=color.green, transp=ob, title="OverBought") // Strategy Tester longCondition = ta.crossover(SMIsignal, emasignal) and (SMI < os) if (longCondition) strategy.entry("Buy", strategy.long) shortCondition = ta.crossunder(SMIsignal, emasignal) and (SMI > ob) if (shortCondition) strategy.entry("Sell", strategy.short)