Stratégie RSI de renversement de l'élan

Auteur:ChaoZhang est là., Date: 2023-11-15 16h29 et 25h
Les étiquettes:

img

Résumé

Il s'agit d'une stratégie de trading à court terme basée sur l'indicateur d'indice de force relative (RSI). Il utilise l'indice pour identifier les niveaux de surachat et de survente et combine le filtrage des bougies pour éviter de faux signaux, en entrant dans des positions longues et courtes aux points d'inversion.

Explication de la stratégie

La logique

Tout d'abord, l'indicateur RSI est calculé en fonction du prix de clôture avec une période définie à 7. Le niveau de surachat est fixé à 70 et le niveau de survente est fixé à 30. Les signaux d'achat sont générés lorsque le RSI dépasse 30 et les signaux de vente sont générés lorsque le RSI dépasse 70.

Pour filtrer les faux signaux, la taille du corps du chandelier doit s'étendre à 1 à 3 fois la plage normale lorsqu'un signal de trading est déclenché.

Lorsque le RSI reste inférieur à 30 pendant 5 barres consécutives, un signal long est généré. Si la bougie suivante montre un corps haussier élargi plus de 4 fois, une position longue sera exécutée. Lorsque le RSI reste supérieur à 70 pendant 5 barres consécutives, un signal court est généré. Si la bougie suivante montre un corps baissier élargi plus de 4 fois, une position courte sera exécutée.

Pour verrouiller les bénéfices, les positions seront fermées lorsque la direction actuelle de la bougie est cohérente avec la direction de la position et que le corps s'étend 2 fois.

Les avantages

  1. Capture de l'inversion moyenne après des niveaux extrêmes

L'indicateur de volatilité (RSI) est un indicateur qui permet de déterminer les conditions de surachat et de survente. Lorsqu'un stock atteint des niveaux extrêmes, il y a une forte probabilité d'un repli, et les niveaux extrêmes impliquent souvent un renversement imminent.

  1. Le filtrage des chandeliers réduit les faux signaux

La négociation purement basée sur les signaux RSI peut entraîner de nombreux faux signaux. Cette stratégie intègre l'expansion du corps du chandelier comme un filtre, en entrant dans des positions lorsqu'un corps élargi apparaît autour des points d'inversion, évitant les coups de fouet des marchés chaotiques.

  1. Les barres RSI consécutives augmentent la fiabilité

L'exigence de 1 à 5 barres RSI consécutives dans une zone de surachat ou de survente agit comme une confirmation, évitant de faux signaux provenant de barres aberrantes occasionnelles et améliorant la fiabilité du signal.

  1. Multiplicateur d'expansion du corps flexible

Le multiplicateur d'expansion du corps peut être ajusté pour différents produits. Pour les stocks avec de grandes oscillations, les critères peuvent être assouplis, tandis que pour les stocks avec des plages étroites, il peut être resserré. Cela permet des ajustements flexibles pour différents produits de trading.

Les risques

  1. Résistance à l'usure

Les paramètres peuvent être ajustés selon les produits et les périodes de temps.

  1. Faible précision dans l'identification des virages

Le RSI lui-même a des propriétés de retard. en combinaison avec l'expansion du corps sort des positions prématurément. la précision de la capture exacte des bas ou des sommets n'est généralement pas très élevé.

  1. Période de détention potentiellement longue sur des marchés variables

Dans les marchés à fourchette, le RSI peut déclencher des signaux d'achat et de vente fréquents, ce qui entraîne de longues périodes de détention.

  1. Besoin de stratégies de dimensionnement de position appropriées

En tant que stratégie de négociation à court terme, des stratégies appropriées de dimensionnement des positions doivent être combinées, telles que le déplacement du stop loss, le take profit, etc., afin d'enregistrer les bénéfices et de contrôler les risques.

Idées d'amélioration

  1. Testez différents ensembles de paramètres

Différentes combinaisons de paramètres RSI peuvent être testées, telles que la période, les niveaux de surachat/survente et les filtres de chandeliers, afin de trouver des paramètres optimisés pour différents produits.

  1. Ajoutez le stop loss et le profit

Le stop loss peut être ajouté pour verrouiller les bénéfices, ou fixé en fonction des valeurs ATR ou des canaux Donchain, etc.

  1. Combiner d'autres indicateurs comme filtres

Des conditions basées sur le MACD, le KDJ et d'autres indicateurs peuvent être ajoutées pour éviter les signaux erronés de ruptures invalides.

  1. Ajouter le biais de tendance

Utilisez des moyennes mobiles pour mesurer le biais de la tendance. Considérez uniquement les signaux de trading qui s'alignent sur la tendance. La stratégie peut être interrompue pendant les marchés à fourchette. Les indicateurs de force de tendance peuvent également être utilisés comme filtres.

Conclusion

En résumé, cette stratégie d'inversion du RSI est une stratégie de trading à court terme typique avec ses propres avantages et inconvénients. Le principal avantage réside dans la capture des retraits après les extrêmes tandis que le principal risque provient de la faible précision du signal et de longues périodes de maintien dans les plages. Nous pouvons améliorer la stratégie en ajustant les paramètres, en ajoutant des filtres, en optimisant les arrêts, etc., pour nous adapter à plus de produits et de conditions de marché, et obtenir des résultats plus stables.


/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "Noro's FRSI Strategy v1.21", shorttitle = "FRSI str 1.21", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, commission_type = strategy.commission.percent, commission_value = 0.0)

//Settings
rsiperiod = input(7, defval = 7, minval = 2, maxval = 50, title = "RSI Period")
limit = input(30, defval = 30, minval = 1, maxval = 100, title = "RSI limit")
rsisrc = input(close, defval = close, title = "RSI Price")
rb = input(1, defval = 1, minval = 1, maxval = 5, title = "RSI Bars")
sps = 0
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2038, defval = 2018, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Fast RSI
fastup = rma(max(change(rsisrc), 0), rsiperiod)
fastdown = rma(-min(change(rsisrc), 0), rsiperiod)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//Limits
bar = close > open ? 1 : close < open ? -1 : 0
uplimit = 100 - limit
dnlimit = limit

//RSI Bars
ur = fastrsi > uplimit
dr = fastrsi < dnlimit
uprsi = rb == 1 and ur ? 1 : rb == 2 and ur and ur[1] ? 1 : rb == 3 and ur and ur[1] and ur[2] ? 1 : rb == 4 and ur and ur[1] and ur[2] and ur[3] ? 1 : rb == 5 and ur and ur[1] and ur[2] and ur[3] and ur[4] ? 1 : 0
dnrsi = rb == 1 and dr ? 1 : rb == 2 and dr and dr[1] ? 1 : rb == 3 and dr and dr[1] and dr[2] ? 1 : rb == 4 and dr and dr[1] and dr[2] and dr[3] ? 1 : rb == 5 and dr and dr[1] and dr[2] and dr[3] and dr[4] ? 1 : 0

//Body
body = abs(close - open)
emabody = ema(body, 30)

//Signals
up = bar == -1 and sps == 0 and dnrsi and body > emabody / 4
dn = bar == 1 and sps == 0 and uprsi and body > emabody / 4
exit = bar == 1 and fastrsi > dnlimit and body > emabody / 2

//Trading
if up
    strategy.entry("Long", strategy.long, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))
    sps := 1

if time > timestamp(toyear, tomonth, today, 00, 00) or exit
    strategy.close_all()
    sps := 0
    

Plus de