Les ressources ont été chargées... Je charge...

Une stratégie de négociation de l'indice de dynamique à double renversement

Auteur:ChaoZhang est là., Date: 2024-02-06 09:29:34 Je suis désolé
Les étiquettes:

img

Résumé

La stratégie de l'indice de momentum à double renversement combine une stratégie de renversement 123 et une stratégie d'indice de momentum relatif (RMI).

Principe de stratégie

La stratégie se compose de deux parties:

  1. 123 Stratégie d'inversion

    • Long lorsque la clôture d'hier est inférieure à celle des jours précédents et que la clôture d'aujourd'hui est supérieure à celle des jours précédents, et que la Slow K de 9 jours est inférieure à 50
    • Short lorsque la clôture d'hier est supérieure à celle des jours précédents et que la clôture d'aujourd'hui est inférieure à celle des jours précédents, et 9 jours Fast K est supérieur à 50
  2. Stratégie relative de l'indice de dynamique (RMI)

    • RMI est une variation du RSI avec une composante de momentum ajoutée.
    • Long lorsque le RMI est inférieur à la ligne de surachat; Short lorsque le RMI est supérieur à la ligne de survente

La stratégie ne génère des signaux de trading que lorsque le 123 Reversal et le RMI donnent des signaux doubles alignés.

Analyse des avantages

Les avantages de cette stratégie sont les suivants:

  1. Amélioration de la précision du signal grâce à des indicateurs doubles
  2. Techniques d'inversion adaptées aux marchés à plage
  3. Indicateur RMI sensible pour identifier les points de basculement des fortes tendances

Analyse des risques

Il y a aussi des risques:

  1. Les doubles filtres peuvent manquer certaines opportunités commerciales
  2. Les signaux de renversement peuvent avoir des jugements erronés
  3. Des paramètres RMI incorrects peuvent affecter l'efficacité

Ces risques pourraient être réduits en ajustant les paramètres, en optimisant les calculs des indicateurs.

Directions d'optimisation

La stratégie peut être encore optimisée par:

  1. Tester différentes combinaisons de paramètres pour trouver le paramètre optimal
  2. Essayez différentes combinaisons d'indicateurs de renversement, par exemple KDJ, MACD
  3. Adaptation de la formule de l'IMR pour la rendre plus sensible
  4. Ajout de mécanismes de stop loss pour contrôler les pertes uniques
  5. Combinaison du volume des transactions pour éviter les faux signaux

Conclusion

La stratégie de l'indice de dynamique de renversement double peut améliorer efficacement la précision des décisions de trading et réduire les chances de signaux erronés grâce au filtrage de signal double et à l'optimisation des paramètres.


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

Plus de