L'oscillateur de dynamique et la stratégie de modèle 123

Auteur:ChaoZhang est là., Date: 2024-01-25 14h27 et 29h
Les étiquettes:

img

Résumé

Cette stratégie combine l'indice de l'oscillateur de momentum et le modèle 123 en un signal de trading cumulatif pour améliorer la rentabilité. L'oscillateur de momentum suit la volatilité du marché et ajuste les paramètres du RSI pour capturer les tendances à court terme.

La logique de la stratégie

Modèle 123

Le modèle 123 se compose de trois étapes. Premièrement, le prix diminue pendant deux jours consécutifs. Deuxièmement, le prix augmente pendant les deux prochains jours. Enfin, le prix diminue à nouveau le troisième jour. Selon ce modèle, nous pouvons déterminer d'établir une position longue lorsque les prix augmentent dans la deuxième étape, et une position courte lorsque les prix baissent dans la troisième étape.

Plus précisément, si le prix de clôture est supérieur à la clôture précédente pendant deux jours consécutifs après deux jours de baisse, et le Stochastique lent de 9 jours est inférieur à 50, c'est un signal d'achat. Si le prix de clôture est inférieur à la clôture précédente pendant deux jours consécutifs après deux jours de hausse, et le Stochastique rapide de 9 jours est supérieur à 50, c'est un signal de vente.

Oscillateur de momentum

L'oscillateur de momentum est construit de manière similaire à l'indicateur de dynamisme, la principale différence étant les périodes variables de l'oscillateur de momentum. Le nombre de périodes dépend de la volatilité des prix récente - une volatilité plus élevée entraîne des périodes plus courtes, ce qui rend l'indicateur plus sensible, tandis que les prix stables entraînent des périodes plus longues pour réduire les faux signaux.

La formule de calcul est la suivante:

DMI = RSI(DTime)  

Where:  
DTime = 14 / 10-day SMA of standard deviation of close over past 5 days

Il partage les mêmes seuils de surachat/survente que le RSI:

Surachat: DMI > 30 Survente: IMD inférieur à 70

Les signaux d'achat et de vente sont générés lorsque le DMI dépasse ces seuils.

Analyse des avantages

  1. Le modèle 123 est simple et efficace. Il utilise des modèles d'inversion à court terme pour entrer sur des fonds mineurs et sortir sur des sommets mineurs, en évitant de prendre des positions contre la tendance.

  2. L'oscillateur de momentum est plus sensible. Sa période variable lui permet de s'adapter au marché et de saisir en temps opportun les points tournants, même en période de forte volatilité.

  3. Les deux stratégies aident à filtrer efficacement les faux signaux.

  4. L'utilisation du DMI comme filtre avec le modèle 123 améliore considérablement la stabilité du système.

Analyse des risques

  1. Le DMI et le modèle 123 peuvent générer de faux signaux lorsque les prix fluctuent temporairement plutôt que d'inverser.

  2. La fréquence de négociation potentiellement élevée. Les périodes variables du DMI le rendent extrêmement sensible au bruit du marché. Les paramètres doivent être correctement réglés pour contrôler la fréquence de négociation.

  3. Le modèle peut manquer des opportunités de tendance à moyen terme, il capte principalement les renversements à court terme et ne peut pas tirer constamment profit des tendances à moyen et long terme.

  4. Il faut limiter les transactions max. Trop de transactions peuvent entraîner des commissions élevées et des coûts de glissement.

Directions d'optimisation

  1. Optimiser les paramètres du DMI, tester les différentes périodes du RSI, les seuils pour trouver la meilleure combinaison.

  2. Optimisez les filtres 123 Pattern, vous pouvez tester différents paramètres de Stoch ou d'autres filtres comme le MACD.

  3. Ajoutez des mécanismes de stop-loss. Des tailles de stop-loss appropriées aident à limiter la baisse des transactions perdantes.

  4. Ajoutez des règles de dimensionnement des positions: la dimensionnement des positions par quantité fixe ou par fraction fixe améliore le contrôle des risques.

Conclusion

Cette stratégie combine l'analyse de l'oscillateur de momentum et du modèle 123 pour améliorer les performances des signaux commerciaux. Cependant, aucune stratégie ne peut s'adapter parfaitement aux conditions changeantes du marché. Les investisseurs doivent se concentrer sur le contrôle des risques, le backtest constant et la mise à jour des paramètres basés sur les résultats en direct afin de maintenir la rentabilité.


/*backtest
start: 2024-01-17 00:00:00
end: 2024-01-24 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 18/03/2020
// 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 indicator plots Dynamic Momentum Index indicator. The Dynamic Momentum 
// Index (DMI) was developed by Tushar Chande and Stanley Kroll. The indicator 
// is covered in detail in their book The New Technical Trader.
// The DMI is identical to Welles Wilder`s Relative Strength Index except the 
// number of periods is variable rather than fixed. The variability of the time 
// periods used in the DMI is controlled by the recent volatility of prices. 
// The more volatile the prices, the more sensitive the DMI is to price changes. 
// In other words, the DMI will use more time periods during quiet markets, and 
// less during active markets. The maximum time periods the DMI can reach is 30 
// and the minimum is 3. This calculation method is similar to the Variable 
// Moving Average, also developed by Tushar Chande.
// The advantage of using a variable length time period when calculating the RSI 
// is that it overcomes the negative effects of smoothing, which often obscure short-term moves.
// The volatility index used in controlling the time periods in the DMI is based 
// on a calculation using a five period standard deviation and a ten period average 
// of the standard deviation.
//
// 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

DMI(RSILen, BuyZone,SellZone,UpLimit,LoLimit) =>
    pos = 0
    xStdDev = stdev(close, 5) 
    xSMAStdDev = sma(xStdDev, 10)
    DTime = round(14 / xSMAStdDev - 0.5)
    xDMI = iff(DTime > UpLimit, UpLimit,
             iff(DTime < LoLimit, LoLimit, DTime))
    xRSI = rsi(xDMI, RSILen)
    pos := iff(xRSI > BuyZone, 1,
             iff(xRSI < SellZone, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Dynamic Momentum Index", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
RSILen = input(14, minval=1)
BuyZone = input(30, minval=1)
SellZone = input(70, minval=1)
UpLimit = input(30, minval=1)
LoLimit = input(5, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDMI = DMI(RSILen, BuyZone,SellZone,UpLimit,LoLimit)
pos = iff(posReversal123 == 1 and posDMI == 1 , 1,
	   iff(posReversal123 == -1 and posDMI == -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