La stratégie de négociation de renversement du RSI est une stratégie de négociation quantitative qui identifie les conditions de surachat et de survente à l'aide de l'indicateur de force relative (RSI) et entre dans des transactions longues ou courtes aux points de renversement.
La stratégie repose sur la logique de base suivante:
L'indicateur de volatilité peut refléter si le marché actuel est suracheté ou survendu. L'indicateur de volatilité mesure l'élan relatif de la hausse par rapport à la baisse en calculant le rapport entre les variations moyennes à la hausse et les variations moyennes à la baisse sur une période de temps.
Lorsque le RSI entre dans la zone de surachat (généralement considéré comme RSI au-dessus de 70), il indique une forte dynamique haussière.
Lorsque le RSI entre dans la zone de survente (généralement inférieure à 30), il indique une forte dynamique à la baisse.
Par conséquent, nous pouvons définir le seuil de surachat du RSI à 90 et le seuil de survente à 10.
Plus précisément, la logique de la stratégie est la suivante:
Calculer la valeur de l'indicateur RSI en utilisant le prix de clôture comme source de l'indicateur RSI, avec une durée de 2 périodes.
Lorsque le RSI dépasse 90, cela signifie que vous entrez dans la zone de surachat, allez court.
Mettez un stop loss pour chaque transaction, un stop long au prix le plus bas, un stop court au prix le plus élevé.
Si le RSI continue vers des niveaux de surachat/survente plus extrêmes, ajustez le stop de trailing pour laisser plus de place.
Pensez à tirer profit lorsque le RSI revient à la zone neutre autour de 50.
Si aucun renversement après 3 bars, fermer la transaction pour éviter une perte illimitée.
La stratégie d'inversion des RSI présente les avantages suivants:
L'utilisation du RSI pour identifier les conditions de surachat / survente peut capturer efficacement les points d'inversion du marché.
Les stratégies d'inversion ont l'avantage systématique de continuer à suivre les tendances.
Le mécanisme de stop loss contrôle efficacement la perte sur les transactions individuelles.
Le trailing stop peut ajuster de manière flexible la distance d'arrêt en fonction du mouvement continu du prix, en équilibrant le maintien de l'arrêt déclenché et la capture d'une plus grande différence de prix.
La sortie forcée après les barres fixes garantit que les transactions sans inversion rapide ne conduiront pas à des pertes illimitées.
Les paramètres RSI réglables permettent d'adapter la stratégie aux différents marchés.
La stratégie comporte également les risques suivants:
En tant que stratégie d'indicateur technique, la performance de l'inversion du RSI peut avoir un biais d'ajustement de la courbe.
Bien que le RSI puisse identifier les conditions de surachat/survente, il ne peut pas prédire le moment exact de l'inversion.
Les niveaux de surachat/survente du RSI peuvent ne pas être raisonnablement fixés. Des niveaux erronés peuvent entraîner des revers manquants ou être arrêtés avant les revers.
La probabilité que le prix fasse un autre renversement avant d'atteindre le profit.
Une distance d'arrêt de perte trop serrée ou trop lâche peut rendre les arrêts inefficaces.
Les commissions de négociation peuvent également avoir une incidence sur la rentabilité de la stratégie.
La stratégie peut être améliorée de la manière suivante:
Testez différents paramètres du RSI pour trouver des combinaisons optimales, telles que la longueur du RSI, les seuils de surachat/survente.
Ajouter plus de filtres pour éviter de faux signaux d'inversion, tels que la combinaison avec le MACD, etc. pour augmenter la probabilité.
Optimiser la stratégie d'arrêt des pertes, par exemple les arrêts basés sur ATR, les distances ajustées à la volatilité.
Optimiser la stratégie de prise de profit, comme le déplacement de prise de profit, en traînant plus de différence de prix.
Ajoutez des modèles d'apprentissage automatique pour aider à juger des inversions et améliorer le taux de réussite.
Tester la stratégie sur différents marchés et instruments pour trouver les meilleurs paramètres pour le trading réel.
Combinez avec le volume des transactions, ne considérez que les signaux de renversement lorsque le volume augmente.
En conclusion, la stratégie d'inversion du RSI tire parti de la force du RSI
/*backtest start: 2023-11-06 00:00:00 end: 2023-11-13 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // Copyright (c) 2021-present, RicMos //study("RSI2 Sell Strategy, overlay=true) //------------------------------------------USER VARIABLE DEFINITIONS -------------------------------------- var float lots = 0.1 //var float fixed_commission = 0.6 // forex pairs commission value USD per position size two sides var float fixed_commission = 10 // BTC commission value USD per position size two sides //var float money = 10000 //forex pairs position size var float money = 0.3333 //BTC position size strategy(title="RSI2 Sell Strategy", commission_type=strategy.commission.cash_per_order, calc_on_every_tick =true, commission_value = fixed_commission/2, overlay=true, default_qty_value= lots*100000, initial_capital=1000, currency = "USD", calc_on_order_fills = false) len = input(2, minval=1, title="RSI Length") src = input(close, "RSI Source", type = input.source) upRsi = rma(max(change(src), 0), len) downRsi = rma(-min(change(src), 0), len) rsi = downRsi == 0 ? 100 : upRsi == 0 ? 0 : 100 - (100 / (1 + upRsi / downRsi)) var color buyColor = color.blue var color sellColor = color.red plotshape(rsi <= 10 ? low : na, title="Arrow Up", style=shape.triangleup, location=location.belowbar, size=size.tiny, color=buyColor) plotshape(rsi >= 90 ? high : na, title="Arrow Down", style=shape.triangledown, location=location.abovebar, size=size.tiny, color=sellColor) // long = rsi <= 10 // var float longsl = 0 // var int long_ts_points = 0 // if long // longsl:= low // long_ts_points := 200 // if rsi >= 70 // long_ts_points := 100 // else if rsi >= 80 // long_ts_points := 80 // plot (longsl) // var int barsPassed = 0 // barsPassed := barssince(long) // if long // strategy.entry("long", long = strategy.long, qty = 10000, stop = high) // strategy.exit("slLo", from_entry="long", stop = longsl-0.0002, trail_points = long_ts_points ) // //strategy.close("long", when = rsi[1]>=50 and rsi < 50 , comment = "rsi under 50" ) // strategy.cancel_all(barsPassed > 3 and not long) short = rsi >= 90 var float shortsl = 0 var int short_ts_points = 0 //var bool stClose = 0 if short shortsl:= high short_ts_points := 200 if rsi <= 30 short_ts_points := 100 //stClose :=1 else if rsi <= 20 short_ts_points := 80 //else //stClose := 0 plot (shortsl) var int barsPassedSh = 0 barsPassedSh := barssince(short) if short strategy.entry("short", long = strategy.short, qty = money, stop = low) strategy.exit("slSh", from_entry="short", stop = shortsl, trail_points = short_ts_points, trail_offset =20 ) //strategy.close("short", comment="rsi<30", when = stClose) //strategy.close("long", when = rsi[1]>=50 and rsi < 50 , comment = "rsi under 50" ) strategy.cancel_all(barsPassedSh > 3 and not short)