Stratégie de l'indice Momentum à double inversion


Date de création: 2024-02-06 09:29:34 Dernière modification: 2024-02-06 09:29:34
Copier: 0 Nombre de clics: 544
1
Suivre
1617
Abonnés

Stratégie de l’indice Momentum à double inversion

Aperçu

La stratégie de double inversion de l’indice de dynamique est une stratégie combinée de la stratégie de inversion 123 et de la stratégie de l’indice de dynamique relative (RMI). Elle vise à améliorer la précision des décisions de négociation en utilisant des signaux doubles.

Principe de stratégie

La stratégie est composée de deux volets:

  1. 123 stratégies de retour

    • Lorsque le prix de clôture est inférieur à celui de la veille, que le prix de clôture est supérieur à celui de la veille et que la ligne Slow K du 9 est inférieure à 50, faites plus.
    • Lorsque le prix de clôture d’hier est supérieur au prix de clôture du jour précédent, que le prix de clôture d’aujourd’hui est inférieur au prix de clôture du jour précédent et que la ligne Fast K du 9 est supérieure à 50, faire un short
  2. Stratégie du RMI

    • Le RMI est une variante du facteur de dynamique ajouté à la base du RSI. Il est calculé selon la formule suivante: RMI = (SMA de la dynamique supérieure) / (SMA de la dynamique inférieure) * 100
    • Lorsque le RMI est inférieur à la ligne de survente, faites plus; lorsque le RMI est supérieur à la ligne de survente, faites moins

Cette stratégie de combinaison ne génère un signal de transaction que lorsque le 123 inverse et le double signal RMI sont émis simultanément. Cela réduit efficacement les chances de transactions erronées.

Analyse des forces stratégiques

Cette stratégie présente les avantages suivants:

  1. La combinaison de deux indicateurs améliore la précision du signal
  2. Une stratégie de rétrogradation adaptée aux conditions de crise
  3. L’indicateur RMI est sensible et peut identifier les points de basculement de tendances fortes

Analyse stratégique des risques

Cette stratégie comporte aussi des risques:

  1. Le double filtrage peut vous faire rater des opportunités commerciales
  2. Les signaux de retour peuvent être mal interprétés.
  3. Les paramètres RMI mal définis peuvent affecter l’effet

Ces risques peuvent être atténués en ajustant les combinaisons de paramètres et en optimisant le calcul des indicateurs.

Orientation de l’optimisation de la stratégie

La stratégie peut également être optimisée dans les domaines suivants:

  1. Tester différentes combinaisons de paramètres pour trouver le meilleur
  2. Essayez différentes combinaisons d’indicateurs de retournement, comme KDJ, MACD et ainsi de suite
  3. Modification de la formule RMI pour la rendre plus sensible
  4. Ajout d’un mécanisme de stop-loss pour contrôler les pertes individuelles
  5. En fonction du volume des transactions, évitez les faux signaux

Résumer

La stratégie de double inversion de l’indice de volatilité par le biais du double filtrage des signaux et de l’optimisation des paramètres permet d’améliorer efficacement l’exactitude des décisions de négociation et de réduire la probabilité de signaux erronés. Elle s’applique aux situations d’oscillation et peut exploiter les opportunités de inversion. La stratégie peut améliorer encore l’efficacité et le risque de lapses en ajustant les paramètres et en optimisant la façon dont les indicateurs sont calculés.

Code source de la stratégie
/*backtest
start: 2024-01-06 00:00:00
end: 2024-02-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 07/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
// The Relative Momentum Index (RMI) was developed by Roger Altman. Impressed 
// with the Relative Strength Index's sensitivity to the number of look-back 
// periods, yet frustrated with it's inconsistent oscillation between defined 
// overbought and oversold levels, Mr. Altman added a momentum component to the RSI.
// As mentioned, the RMI is a variation of the RSI indicator. Instead of counting 
// up and down days from close to close as the RSI does, the RMI counts up and down 
// days from the close relative to the close x-days ago where x is not necessarily 
// 1 as required by the RSI). So as the name of the indicator reflects, "momentum" is 
// substituted for "strength". 
//
// 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


RMI(Length,BuyZone, SellZone) =>
    pos = 0.0
    xMU = 0.0
    xMD = 0.0
    xPrice = close
    xMom = xPrice - xPrice[Length]
    xMU := iff(xMom >= 0, nz(xMU[1], 1) - (nz(xMU[1],1) / Length) + xMom, nz(xMU[1], 1))
    xMD := iff(xMom <= 0, nz(xMD[1], 1) - (nz(xMD[1],1) / Length) + abs(xMom), nz(xMD[1], 0))
    RM = xMU / xMD
    nRes = 100 * (RM / (1+RM))
    pos:= iff(nRes < BuyZone, 1,
    	   iff(nRes > SellZone, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Relative Momentum Index", 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, "---- Relative Momentum Index ----")
LengthRMI = input(20, minval=1)
BuyZone = input(40, minval=1)
SellZone = input(70, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posRMI = RMI(LengthRMI,BuyZone, SellZone)
pos = iff(posReversal123 == 1 and posRMI == 1 , 1,
	   iff(posReversal123 == -1 and posRMI == -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 )