
Le RSI inverse génère des signaux d’achat et de vente en calculant le RSI et les moyennes mobiles pour déterminer si une action est en survente ou en survente. Le RSI inverse profite du caractère inverse du RSI pour tirer profit d’une inversion du cours d’une action.
La stratégie commence par calculer le RSI sur 14 cycles et effectue un traitement de normalisation de 0 à 100. Ensuite, elle calcule la moyenne mobile pondérée du RSI sur 5 cycles, puis la mappe entre -1 et 1 via une fonction de coupe inverse. Le RSI post-mappage génère un signal d’achat lorsqu’il est passé à -0.8 et un signal de vente lorsqu’il est passé à 1.
La stratégie définit également les mois et les dates de fonctionnement, de sorte qu’ils fonctionnent uniquement dans les mois et les dates spécifiés.
La stratégie de retour en arrière RSI est une stratégie de trading quantitative qui permet de capturer facilement et efficacement les occasions de retour en arrière en construisant des règles de trading inverses de l’indicateur RSI. La stratégie est facile à mettre en œuvre, mais elle peut être optimisée par l’optimisation des paramètres, l’amélioration des mécanismes de contrôle du risque, etc., ce qui en fait une stratégie de trading quantitative et stable.
/*backtest
start: 2023-01-12 00:00:00
end: 2024-01-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title="RSI Reverse", shorttitle="RSI Reverse")
RSI_main = input(14, title="RSI Main Period")
RSI_smooth = input(5, title="RSI Smooth Period")
//Functions
RVS(input) => (exp(2*input)-1) / (exp(2*input)+1)
//RSI Calculation
raw_RSI=0.1*(rsi(close,RSI_main)-50)
wma_RSI=wma(raw_RSI,RSI_smooth)
RVS_RSI = RVS(wma_RSI)
threshold1 = RVS_RSI < 0.8? 1 : 0
threshold2 = -0.8
plot(RVS_RSI,color=red)
plot(threshold1,color=blue)
plot(threshold2,color=blue)
buycon = crossover(RVS_RSI,threshold2)
sellcon = crossunder(RVS_RSI , threshold1)
monthfrom =input(6)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)
if ( buycon )
strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND", comment="BUY")
else
strategy.cancel(id="BUY")
if ( sellcon)
strategy.close("BUY")