Stratégie de trading quantitative basée sur le RSI


Date de création: 2023-12-06 17:17:16 Dernière modification: 2023-12-06 17:17:16
Copier: 0 Nombre de clics: 543
1
Suivre
1619
Abonnés

Stratégie de trading quantitative basée sur le RSI

Aperçu

Cette stratégie est appelée inversion du RSI à deux axes, et est une stratégie de trading quantitative basée sur l’indice de force relative (RSI). Cette stratégie utilise deux cycles différents du RSI comme signaux d’achat et de vente pour réaliser des ventes basses et des ventes élevées, et pour saisir les opportunités de trading générées par l’inversion du prix des actions.

Principe de stratégie

La stratégie utilise le RSI à cycle rapide (de 55 jours par défaut) et le RSI à cycle lent (de 126 jours par défaut) pour construire un signal de transaction. Il génère un signal d’achat lorsque le RSI à cycle rapide traverse le RSI à cycle lent, et vice versa lorsqu’il génère un signal de vente lorsque le RSI à cycle rapide traverse le RSI à cycle lent. Ainsi, en comparant la force relative de la dynamique des prix dans deux périodes différentes, il est possible de trouver des opportunités de renversement de tendance à court et à long terme.

Une fois le signal entré, la stratégie définit un point d’arrêt-stop. Le point d’arrêt est par défaut 0,9 fois le prix d’entrée, et le point d’arrêt est par défaut 3% du prix d’entrée. Il est également possible de niveler la position actuelle lors de la réapparition du signal de revers.

Avantages stratégiques

  • Utilisez le double RSI pour détecter les points de changement dans les tendances à court et à long terme des prix et saisissez les opportunités de retournement
  • Le double RSI élimine le bruit de la fausse rupture
  • Configuration d’un point d’arrêt pour limiter les pertes simples

Risque stratégique

  • Les signaux RSI peuvent souvent être inversés pendant les fortes fluctuations des cours des actions
  • Le point d’arrêt est trop petit, ce qui peut entraîner une perte après une petite secousse.
  • Les paramètres du double RSI sont mal configurés et risquent de manquer une grande reprise

Optimisation de la stratégie

  • Les paramètres RSI permettent de tester plus de combinaisons pour trouver les meilleurs paramètres
  • Il peut être combiné avec d’autres indicateurs pour filtrer les signaux de fausse rupture.
  • Modifier dynamiquement le rapport de perte de freinage pour une plus grande flexibilité

Résumer

Cette stratégie utilise le double axe de temps RSI inversion par la comparaison des cycles plus rapides et des cycles plus lents deux RSI croisés comme signal de négociation, le but est de capturer les opportunités de revers de prix à court terme. Tout en définissant la règle de stop-loss pour éviter le risque.

Code source de la stratégie
/*backtest
start: 2022-11-29 00:00:00
end: 2023-12-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title="Relative Strength Index", shorttitle="RSI")
slen    = input(55, title="Short length")
llen    = input(126, title="Long length")
sup     = ema(max(change(close), 0), slen)
sdown   = ema(-min(change(close), 0), slen)
rsi1    = sdown == 0 ? 100 : sup == 0 ? 0 : 100 - (100 / (1 + sup / sdown))
lup     = ema(max(change(close), 0), llen)
ldown   = ema(-min(change(close), 0), llen)
rsi2    = ldown == 0 ? 100 : lup == 0 ? 0 : 100 - (100 / (1 + lup / ldown))
ob      = input(55, title="Overbought")
os      = input(45, title="Oversold")
tp      = input(.9, title="Take profit level %")*.01
sl      = input(3, title="Stoploss level %")*.01
mid     = avg(ob,os)
plot    (mid, color=#4f4f4f, transp=0)
hline   (ob, color=#4f4f4f)
hline   (os, color=#4f4f4f)
long    = crossover(rsi1,rsi2)
short   = crossunder(rsi1,rsi2)
vall    = valuewhen(long,close,0)
lexit1  = high>=(vall*tp)+vall
lexit2  = low<=vall-(vall*sl)
vals    = valuewhen(short,close,0)
sexit1  = low<=vals - (vals*tp)
sexit2  = high>=vals + (vals*sl)
bgcolor (color=long?lime:na,transp=50)
bgcolor (color=short?red:na, transp=50)
strategy.entry("Long", strategy.long, when=long)
strategy.close("Long", when=lexit1)
strategy.close("Long", when=lexit2)
strategy.close("Long", when=short)
strategy.entry("Short", strategy.short, when=short)
strategy.close("Short", when=sexit1)
strategy.close("Short", when=sexit2)
strategy.close("Short", when=long)
plot    (rsi1, color=orange, transp=0,linewidth=1, title="Short period RSI")
plot    (rsi2, color=aqua  , transp=0,linewidth=1, title="Long period RSI")