
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.
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.
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.
/*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")