Calcul de l'indicateur RSI et de la stratégie d'inversion de la moyenne mobile lissée


Date de création: 2024-01-19 14:24:09 Dernière modification: 2024-01-19 14:24:09
Copier: 1 Nombre de clics: 748
1
Suivre
1617
Abonnés

Calcul de l’indicateur RSI et de la stratégie d’inversion de la moyenne mobile lissée

Aperçu

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.

Principe de stratégie

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.

Les avantages

  • Utilisez les caractéristiques de retournement de l’indicateur RSI pour générer des signaux de négociation et saisir les opportunités de retournement au moment où le cours de l’action est en train de se retourner.
  • Le RSI est cartographié et les seuils sont jugés pour rendre le signal plus clair.
  • Le mois et la date d’exécution sont configurables, et l’utilisation est flexible.

Les risques

  • Les signaux de retournement du RSI peuvent être erronés, ce qui entraîne une erreur de signal de trading. Les signaux erronés peuvent être réduits en ajustant les paramètres du RSI ou en ajoutant des filtres sur d’autres indicateurs.
  • Il est facile de s’appuyer sur un seul indicateur RSI pour générer des signaux de tête de mur, mais il est possible d’introduire d’autres indicateurs ou des mécanismes de construction de facteurs pour améliorer la stabilité de la stratégie.
  • Les périodes fixes de mois et de dates peuvent laisser passer des opportunités d’échanges pour d’autres périodes, ce qui configure des heures de fonctionnement plus flexibles.

Direction d’optimisation

  • Testez plus de combinaisons de paramètres pour trouver la meilleure correspondance entre le RSI et la période de la moyenne mobile
  • Augmentation des indicateurs tels que le volume de transactions ou le taux de fluctuation pour confirmer le signal de renversement et réduire les fausses informations.
  • Optimiser et adapter la gamme de mois et de dates de fonctionnement pour couvrir plus d’opportunités de trading.
  • Le gouvernement a décidé d’ajouter des mécanismes de stop-loss pour contrôler les risques.

Résumer

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.

Code source de la stratégie
/*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")