Cette stratégie utilise l'indice dynamique des traders (TDI) comme indicateur technique principal, combiné à des moyennes mobiles sur différentes périodes pour générer des signaux de trading.
La stratégie calcule d'abord le RSI de clôture avec une période de 13. Ensuite, elle calcule la moyenne mobile simple de 34 périodes du RSI et utilise 1,6185 fois l'écart type de 34 périodes du RSI comme bandes supérieures et inférieures.
Après cela, il calcule le MA rapide du RSI avec une période de 2 et le MA lent du RSI avec une période de 7. Il récupère ensuite les valeurs historiques de ces indicateurs à partir d'un laps de temps plus long.
Cette stratégie utilise la caractéristique de la réversion moyenne du RSI et combine des indicateurs de dynamique pour mettre en œuvre le trading d'inversion. Les bandes supérieure et inférieure du RSI reflètent les conditions de surachat et de survente, tandis que la bande du milieu reflète le niveau moyen des prix.
En particulier, les bandes RSI fixent des seuils raisonnables de surachat et de survente pour détecter rapidement les anomalies. La bande du milieu capte le niveau de prix d'équilibre. Le MA rapide filtre le bruit à court terme et le MA lent détermine la tendance à moyen terme. Travaillant ensemble, ils peuvent identifier efficacement les opportunités d'inversion.
Cette stratégie est principalement basée sur l'inversion moyenne, qui comporte des risques inhérents au timing. Des pertes consécutives pourraient survenir si le marché subit une expansion irrationnelle prolongée, comme une courte contraction.
Pour contrôler les risques ci-dessus, il est conseillé d'ajuster raisonnablement les périodes de MA ou d'ajouter des mécanismes de stop loss. Lorsque le marché entre dans un régime irrationnel, les positions doivent être réduites ou arrêtées.
La stratégie peut être optimisée dans les aspects suivants:
Testez des périodes RSI de longueurs différentes pour trouver des réglages plus adaptés aux conditions actuelles du marché.
Optimiser les longueurs des MAs rapides et lents pour équilibrer les captures d'inversions et filtrer le bruit.
L'établissement doit fournir des informations détaillées sur les risques liés à l'utilisation de l'instrument.
Essayez d'ajouter d'autres facteurs comme le changement de volume dans la logique d'entrée pour améliorer la précision.
Testez l'effet de la réutilisation du même ensemble de signaux de trading sur plusieurs délais.
Développer des mécanismes d'optimisation adaptative pour le réglage des paramètres dynamiques.
Le cadre général de cette stratégie d'inversion de l'indice de croissance est raisonnable avec une logique claire et interprétable. Il a un espace et un potentiel d'optimisation personnalisables. Avec un réglage approprié des paramètres et un contrôle des risques, sa capacité à capturer les inversions est prometteuse.
/*backtest start: 2022-11-06 00:00:00 end: 2023-11-12 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("TDI - Traders Dynamic Index [Mehdi]", shorttitle="TDIMEHDI") rsiPeriod = input(13, minval = 1, title = "RSI Period") bandLength = input(34, minval = 1, title = "Band Length") lengthrsipl = input(7, minval = 0, title = "Fast MA on RSI") lengthtradesl = input(2, minval = 1, title = "Slow MA on RSI") p1 = input("15", title = "Signal Timeframe") src = close // Source of Calculations (Close of Bar) r = rsi(src, rsiPeriod) // RSI of Close ma = sma(r, bandLength) // Moving Average of RSI [current] offs = (1.6185 * stdev(r, bandLength)) // Offset up = ma + offs // Upper Bands dn = ma - offs // Lower Bands mid = (up + dn) / 2 // Average of Upper and Lower Bands fastMA = sma(r, lengthrsipl) // Moving Average of RSI 2 bars back slowMA = sma(r, lengthtradesl) // Moving Average of RSI 7 bars back hline(20) // ExtremelyOversold hline(30) // Oversold hline(50) // Midline hline(70) // Overbought hline(80) // ExtremelyOverbought up1 = request.security(syminfo.tickerid, p1, up) dn1 = request.security(syminfo.tickerid, p1, dn) mid1 = request.security(syminfo.tickerid, p1, mid) slowMA1 = request.security(syminfo.tickerid, p1, slowMA) fastMA1 = request.security(syminfo.tickerid, p1, fastMA) plot(up1, "Upper Band", color = #3286c3, linewidth = 2) // Upper Band plot(dn1, "Lower Band", color = #3286c3, linewidth = 2) // Lower Band plot(mid1, "Middle of Bands", color = yellow, linewidth = 2) // Middle of Bands plot(slowMA1, "Slow MA", color=green, linewidth=2) // Plot Slow MA plot(fastMA1, "Fast MA", color=red, linewidth=1) // Plot Fast MA if (crossover(slowMA1, fastMA1)) strategy.entry("Buy", strategy.long, comment="Buy") if (crossunder(slowMA1, fastMA1)) strategy.entry("Sell", strategy.short, comment="Sell")