
L’indicateur de stratégie de déviation de tendance RSI est un outil de trading quantitatif avancé qui utilise la relation de déviation formée entre l’indicateur de force relative (RSI) et le prix pour fournir aux traders des signaux d’achat et de vente à haute probabilité. La stratégie est optimisée spécifiquement pour les périodes de 30 minutes et identifie efficacement les points de retournement du marché grâce à des niveaux d’entrée et de sortie RSI calculés avec précision, combinés à des signaux de déviation de bull et de bear. La stratégie permet aux traders d’ajuster les paramètres d’entrée et de sortie du RSI en fonction des caractéristiques de différents marchés et de différentes périodes de temps.
Le RSI s’écarte de la stratégie en fonction de la synergie de deux indicateurs techniques clés:
Indice de force relative (RSI) niveau de survente / surventePar défaut, le niveau d’entrée multiple est de 35,0, le niveau d’entrée sans tête est de 76,0, le niveau d’entrée multiple est de 80,0, et le niveau d’exit sans tête est de 54,1. Ces niveaux sont obtenus grâce à des années d’expérience de test et sont optimisés pour les périodes de 30 minutes.
RSI dévié du signalLa stratégie consiste à identifier deux types de déviation:
La logique d’exécution de la stratégie est la suivante:
Le système identifie les écarts en remontant les 5 colonnes de données et génère automatiquement un signal de transaction lorsque les conditions sont remplies, réduisant considérablement le besoin d’analyse manuelle.
Filtrage des signaux de haute précisionIl permet de filtrer efficacement les signaux faibles en combinant le niveau RSI et la déviation des prix, de déclencher des transactions uniquement à des points de basculement à forte probabilité et d’améliorer le taux de réussite des transactions.
Personnalisation: Les traders peuvent ajuster les niveaux d’entrée et de sortie du RSI en fonction des caractéristiques des différents marchés et des différentes périodes de temps, afin d’optimiser la performance de la stratégie. Cette flexibilité le rend applicable à une variété de types de transactions et de périodes de temps.
Une aide visuelle intuitiveLe site Web de l’agence de presse américaine Global Voices a publié un article intitulé:
Le potentiel de l’automatisation des transactionsL’intégration avec les plateformes de trading externes via la fonction Webhook de TradingView permet l’exécution automatisée des transactions et réduit l’intervention humaine et l’impact émotionnel.
Ouverture et transparenceLe code de la stratégie est entièrement open source, ce qui permet aux traders de mieux comprendre comment elle fonctionne et de la modifier et l’optimiser en fonction de leurs besoins.
Risques liés aux tendances du marché: La stratégie fonctionne bien pour identifier les points de basculement, mais peut produire de faux signaux dans un marché en forte tendance. La fiabilité des signaux à plusieurs têtes est considérablement réduite, en particulier dans une forte tendance baissière ou une période de baisse.
Paramètre Sensibilité: Les paramètres RSI d’entrée et de sortie ont un impact significatif sur les performances de la stratégie. Des paramètres mal configurés peuvent entraîner des transactions excessives ou des opportunités importantes manquées. La solution consiste à optimiser les paramètres en fonction d’un marché et d’une période spécifiques.
Le risque de retardLe fait que la stratégie utilise des indices en retard (RSI) et qu’il faut attendre qu’ils se décalent de la formation peut conduire à un point d’entrée qui n’est pas idéal, en particulier dans des marchés très volatiles.
Risque de fausse percée: Le marché peut se former de faux signaux de déviation, entraînant des transactions erronées. Il est recommandé de combiner les signaux de confirmation avec d’autres indicateurs techniques ou des délais plus élevés.
Effets des commissions et des points de glissement: La stratégie définit par défaut une commission de 0,1%, mais les commissions et les points de glissement dans les transactions réelles peuvent être différents de la valeur définie, ce qui affecte les résultats réels du test par rapport à la performance des transactions réelles.
Intégration de l’analyse de plusieurs périodesExtension de la stratégie à un système d’analyse à plusieurs périodes de temps, exécutant les transactions uniquement lorsque la direction de la tendance à des périodes plus élevées est en accord avec le signal de déviation. Par exemple, exécutez des transactions à plusieurs têtes uniquement lorsque le graphique de la journée montre une tendance à la hausse et que le graphique de 30 minutes présente une déviation du marché haussier.
Filtre pour augmenter le volume des transactions: augmentation du mécanisme de confirmation du volume des transactions lors de la formation d’un signal décalé, améliorant la fiabilité du signal. Par exemple, il est possible de vérifier si le volume des transactions lors de la formation d’un décalé présente un modèle de décalé ou de confirmation.
Paramètres RSI adaptés: Développement d’algorithmes d’adaptation qui ajustent automatiquement les niveaux d’entrée et de sortie du RSI en fonction de la volatilité du marché pour s’adapter à différents environnements de marché.
Optimisation des mécanismes de coupeLa stratégie actuelle consiste à se retirer de la négociation uniquement au niveau du RSI et à ajouter un mécanisme de stop-loss basé sur le prix pour limiter les pertes maximales d’une seule transaction.
Augmenter le filtrage des conditions du marchéL’intégration d’indicateurs de reconnaissance de tendance (tels que les moyennes mobiles ou l’ADX) pour effectuer des transactions dans une direction spécifique uniquement dans un environnement de marché approprié et éviter les transactions à contre-courant.
Optimisation du machine learningL’analyse des données historiques par des algorithmes d’apprentissage automatique permet d’identifier automatiquement les meilleurs paramètres de RSI et les conditions de confirmation de déviation pour améliorer encore la performance de la stratégie.
L’indicateur de stratégie RSI de déviation de tendance est un outil de trading quantitatif puissant qui identifie efficacement les points de retournement du marché en combinant l’indicateur RSI et la déviation de prix. L’avantage le plus notable de la stratégie réside dans sa haute personnalisation et son aide visuelle intuitive, permettant aux traders d’optimiser leurs décisions de trading en fonction de différents environnements de marché.
La valeur centrale de la stratégie réside dans sa capacité de filtrage des signaux, qui améliore considérablement la qualité des signaux de négociation en déclenchant des transactions uniquement lorsque le RSI est à un niveau spécifique et que des écarts de prix se produisent simultanément. Cependant, les utilisateurs doivent être attentifs aux risques et aux paramètres sensibles aux tendances du marché et trouver les meilleurs paramètres pour un marché et une période particuliers en effectuant un retracement.
La stratégie a le potentiel d’améliorer encore sa performance et son adaptabilité grâce à des directions d’optimisation telles que l’analyse multi-temporelle, la confirmation des volumes de transactions, les paramètres d’adaptation automatique et les mécanismes de gestion des risques améliorés.
/*backtest
start: 2024-06-13 00:00:00
end: 2025-06-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy(title="RSI Divergence Strategy", shorttitle="RSI Divergence Strategy", overlay=false, default_qty_type=strategy.percent_of_equity, default_qty_value=10, commission_type=strategy.commission.percent, commission_value=0.1, slippage=0, initial_capital=100000, currency=currency.USD, process_orders_on_close=false)
// RSI Settings
rsiLengthInput = input.int(14, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")
calculateDivergence = input.bool(true, title="Calculate Divergence", group="RSI Settings", tooltip="Required for divergence signals")
// Added RSI Level Inputs
longEntryLevel = input.float(35.0, "Long Entry RSI", minval=0, maxval=100, step=0.1, group="RSI Levels")
shortEntryLevel = input.float(76.0, "Short Entry RSI", minval=0, maxval=100, step=0.1, group="RSI Levels")
longExitLevel = input.float(80.0, "Long Exit RSI", minval=0, maxval=100, step=0.1, group="RSI Levels")
shortExitLevel = input.float(54.1, "Short Exit RSI", minval=0, maxval=100, step=0.1, group="RSI Levels")
// RSI Calculation
change = ta.change(rsiSourceInput)
up = ta.rma(math.max(change, 0), rsiLengthInput)
down = ta.rma(-math.min(change, 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
// Divergence Parameters
lookbackRight = 5
lookbackLeft = 5
rangeUpper = 60
rangeLower = 5
_inRange(bool cond) =>
bars = ta.barssince(cond)
rangeLower <= bars and bars <= rangeUpper
var bool plFound = false
var bool phFound = false
var bool bullCond = false
var bool bearCond = false
// Global variables to store _inRange results
var bool inRangePlFound = false
var bool inRangePhFound = false
rsiLBR = rsi[lookbackRight]
// Update _inRange results on every bar
inRangePlFound := _inRange(plFound[1])
inRangePhFound := _inRange(phFound[1])
if calculateDivergence
// Regular Bullish Divergence
plFound := not na(ta.pivotlow(rsi, lookbackLeft, lookbackRight))
rsiHL = rsiLBR > ta.valuewhen(plFound, rsiLBR, 1) and inRangePlFound
lowLBR = low[lookbackRight]
priceLL = lowLBR < ta.valuewhen(plFound, lowLBR, 1)
bullCond := priceLL and rsiHL and plFound
// Regular Bearish Divergence
phFound := not na(ta.pivothigh(rsi, lookbackLeft, lookbackRight))
rsiLH = rsiLBR < ta.valuewhen(phFound, rsiLBR, 1) and inRangePhFound
highLBR = high[lookbackRight]
priceHH = highLBR > ta.valuewhen(phFound, highLBR, 1)
bearCond := priceHH and rsiLH and phFound
// Strategy Entries with customizable RSI levels
if bullCond and rsi < longEntryLevel
strategy.entry("Long", strategy.long)
if bearCond and rsi > shortEntryLevel
strategy.entry("Short", strategy.short)
// Strategy Exits with customizable RSI levels
if rsi >= longExitLevel
strategy.close("Long")
if rsi <= shortExitLevel
strategy.close("Short")
// ———————— Visualizations ———————— //
// Plot RSI line
rsiColor = rsi > 70 ? color.new(#ff5252, 0) : rsi < 30 ? color.new(#4bf335, 0) : color.new(#b8b8b8, 0)
plot(rsi, title="RSI", color=rsiColor, linewidth=2, style=plot.style_line)
// Plot horizontal levels
hline(longEntryLevel, "Long Entry", color=color.new(#4bf335, 0), linestyle=hline.style_solid)
hline(shortEntryLevel, "Short Entry", color=color.new(#ed1404, 0), linestyle=hline.style_solid)
hline(longExitLevel, "Long Exit", color=color.new(#4bf335, 0), linestyle=hline.style_dashed)
hline(shortExitLevel, "Short Exit", color=color.new(#ed1404, 0), linestyle=hline.style_dashed)
// Plot traditional levels
ob = 70
os = 30
hline(ob, "Overbought", color=color.new(#ff5252, 70), linestyle=hline.style_dotted)
hline(os, "Oversold", color=color.new(#4bf335, 70), linestyle=hline.style_dotted)
// Background colors
bgcolor(rsi >= ob ? color.new(#ff5252, 90) : na)
bgcolor(rsi <= os ? color.new(#4bf335, 90) : na)
bgcolor(rsi > os and rsi < ob ? color.new(#424242, 95) : na)
// ———————— DIVERGENCE VISUALS ———————— //
// Position labels below RSI for bullish, above for bearish
bullLabelY = math.max(0, rsi[lookbackRight] - 15) // Position below RSI line
bearLabelY = math.min(100, rsi[lookbackRight] + 15) // Position above RSI line
// CORRECTED: Pass y-coordinate as first argument for absolute positioning
plotshape(bullCond ? bullLabelY : na, title="Bullish Divergence", text="BULL", style=shape.labelup,
location=location.absolute, color=color.new(#4bf335, 50), textcolor=color.white,
size=size.tiny, offset=-lookbackRight)
plotshape(bearCond ? bearLabelY : na, title="Bearish Divergence", text="BEAR", style=shape.labeldown,
location=location.absolute, color=color.new(#ed1404, 50), textcolor=color.white,
size=size.tiny, offset=-lookbackRight)