Stratégie de Momentum RSI à double inversion


Date de création: 2023-09-26 15:42:48 Dernière modification: 2023-09-26 15:42:48
Copier: 1 Nombre de clics: 691
1
Suivre
1617
Abonnés

Aperçu

Cette stratégie permet de filtrer les doubles signaux en combinant la stratégie de retournement de la forme 123 et la stratégie de dynamique RSI, permettant des entrées à haute probabilité à des points de retournement de tendance.

Définition

123 Stratégie de retour en arrière

Cette stratégie est tirée du livre de Ulf Jensen Comment obtenir un triple rendement sur le marché à terme page 183. Le principe est de juger des opportunités potentielles de renversement de tendance à la phase de consolidation.

Plus précisément, lorsque le prix de clôture est supérieur au prix de clôture du jour précédent pendant 2 jours consécutifs et que la ligne Slow K est inférieure à 50 le 9e jour, faites plus; lorsque le prix de clôture est inférieur au prix de clôture du jour précédent pendant 2 jours consécutifs et que la ligne Fast K est supérieure à 50 le 9e jour, faites moins.

Ainsi, la stratégie consiste essentiellement à évaluer les opportunités de reprise potentielles à l’aide de l’indicateur stochastique.

Stratégie de dynamique RSI

La stratégie utilise la fonction ROC pour calculer le taux de variation des prix, puis construit un indicateur RSI basé sur le taux de variation des prix afin de déterminer la dynamique tendancielle.

Lorsque le RSI est en dessous de la zone d’achat, il indique une accélération de la dynamique haussière des prix, faisant plus; lorsque le RSI est supérieur à la zone de vente, il indique une accélération de la dynamique baissière des prix, faisant moins.

Les avantages

  • La stratégie de retournement de forme 123 permet de déterminer le point de retournement potentiel après la consolidation
  • La stratégie de dynamique RSI peut filtrer efficacement les fausses percées
  • Les deux signaux stratégiques s’accumulent pour former un signal d’entrée puissant.

Les risques

  • Les formes 123 sont sujettes à la formation de chevauchements ou de fausses ruptures de tête et doivent être filtrées avec d’autres indicateurs
  • Le RSI lui-même est basé sur le prix et ne peut pas être totalement évité.
  • Les doubles signaux peuvent se cumuler et vous manquer un bon point d’entrée.

Les points suivants peuvent être considérés pour réduire le risque:

  1. Ajuster les paramètres de l’indicateur stochastique pour déterminer la tendance à l’aide de périodes plus longues
  2. Ajuster les paramètres du RSI en utilisant des achats plus bas et des ventes plus élevées
  3. Considérez l’utilisation d’une seule entrée.

Direction d’optimisation

  • Les paramètres du cycle ROC peuvent être testés pour trouver ceux qui conviennent le mieux à une variété particulière
  • La logique de détermination de la forme 123 peut être testée, par exemple en ajustant les paramètres de la ligne rapide et lente de la ligne K.
  • Les paramètres de la zone RSI peuvent être testés pour déterminer les zones de vente et d’achat les plus appropriées
  • Vous pouvez essayer d’autres indicateurs comme MACD au lieu de Stochastic
  • Test de l’efficacité avec un seul signal de stratégie

Résumer

La stratégie est facile à optimiser et à ajuster les paramètres, les utilisateurs peuvent tester en fonction des différentes variétés et des préférences de négociation. Cependant, il convient également de prendre en compte le risque que les signaux doubles puissent manquer le moment d’entrée.

Code source de la stratégie
/*backtest
start: 2023-08-26 00:00:00
end: 2023-09-25 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 17/06/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// This is the new-age indicator which is version of RSI calculated upon 
// the Rate-of-change indicator.
// The name "Relative Strength Index" is slightly misleading as the RSI 
// does not compare the relative strength of two securities, but rather 
// the internal strength of a single security. A more appropriate name 
// might be "Internal Strength Index." Relative strength charts that compare 
// two market indices, which are often referred to as Comparative Relative Strength.
// And in its turn, the Rate-of-Change ("ROC") indicator displays the difference 
// between the current price and the price x-time periods ago. The difference can 
// be displayed in either points or as a percentage. The Momentum indicator displays 
// the same information, but expresses it as a ratio.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos


RSI_ROC(RSILength,ROCLength,BuyZone,SellZone) =>
    pos = 0.0
    xPrice = close
    nRes = rsi(roc(xPrice,ROCLength),RSILength)
    pos := iff(nRes < BuyZone, -1,
	         iff(nRes > SellZone, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & RSI based on ROC", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- RSI based on ROC ----")
RSILength = input(20, minval=1)
ROCLength = input(20, minval=1)
BuyZone = input(30, minval=1)
SellZone = input(70, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posRSI_ROC = RSI_ROC(RSILength,ROCLength,BuyZone,SellZone)
pos = iff(posReversal123 == 1 and posRSI_ROC == 1 , 1,
	   iff(posReversal123 == -1 and posRSI_ROC == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1 ) 
    strategy.entry("Long", strategy.long)
if (possig == -1 )
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )