
La stratégie est appelée stratégie de trading dynamique basée sur le CMO et le WMA. Elle utilise l’oscillateur de momentum de Chande (CMO) et sa moyenne mobile pondérée (WMA) pour construire des signaux de trading. L’idée centrale est de faire plus lorsque le CMO monte sur son WMA et de faire moins lorsque il descend sur son WMA.
Le CMO est un indicateur central de la stratégie. Le CMO est étroitement lié aux autres indicateurs dynamiques tels que le RSI, mais il est également unique. Le CMO mesure directement le momentum des variations de prix.
La stratégie commence par calculer la variation d’une journée du prix de clôture abs ((close - close[1]) comme momentum initial xMom. Puis calculer le SMA des jours de longueur de xMom, noté comme xSMA_mom. Puis calculer le changement de prix des jours de longueur xMomLength, soit close - close[La valeur finale de CMO est xMomLength divisé par xSMA_mom multiplié par 100. Le CMO est aplani par WMA (paramètre LengthWMA). Le signal de stratégie est: lorsque le CMO passe par-dessus (par-dessous) son WMA, faites plus (vide).
Le plus grand avantage de cette stratégie est de capturer les caractéristiques dynamiques des tendances des prix. La conception de la limite du CMO le rend plus directement réflecteur des changements de dynamique.
Le plus grand risque de cette stratégie réside dans le coût de glissement de la fréquence des transactions. Les CMO et WMA sont des paramètres à court terme qui peuvent être trop sensibles pour produire de nombreuses inversions inutiles. Cela est particulièrement grave lorsque la variété fluctue beaucoup. De plus, les paramètres fixes ne peuvent pas s’adapter aux changements de l’environnement du marché.
On peut envisager d’introduire des paramètres d’optimisation des paramètres d’adaptation CMO et WMA, afin de les adapter dynamiquement; ou d’ajouter des conditions de filtrage pour réduire les transactions inutiles. Bien sûr, réduire la volatilité des variétés par combinaison est également une option.
Cette stratégie peut être optimisée dans les domaines suivants:
L’ajout d’un mécanisme de paramètres CMO qui s’adapte à l’évolution de l’environnement et qui permet de trouver les paramètres optimaux dans différents environnements.
Ajout d’un mécanisme de paramétrage WMA qui s’adapte aux fluctuations de l’effet de lissage;
L’ajout de conditions de filtrage, telles que l’introduction d’un indice de volatilité, permettrait de contrôler sans revenir en arrière.
Envisager des combinaisons avec d’autres indicateurs pour améliorer la stabilité;
Optimiser le mécanisme de stop loss. Définir une ligne de stop loss dynamique, contrôler activement les pertes sur une roue.
La stratégie est basée sur le suivi de tendances simple et efficace par le CMO et le WMA. L’avantage de la stratégie est de capturer clairement les caractéristiques de la dynamique des prix.
/*backtest
start: 2022-11-21 00:00:00
end: 2023-11-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 13/02/2017
// This indicator plots Chandre Momentum Oscillator and its WMA on the
// same chart. This indicator plots the absolute value of CMO.
// The CMO is closely related to, yet unique from, other momentum oriented
// indicators such as Relative Strength Index, Stochastic, Rate-of-Change,
// etc. It is most closely related to Welles Wilder?s RSI, yet it differs
// in several ways:
// - It uses data for both up days and down days in the numerator, thereby
// directly measuring momentum;
// - The calculations are applied on unsmoothed data. Therefore, short-term
// extreme movements in price are not hidden. Once calculated, smoothing
// can be applied to the CMO, if desired;
// - The scale is bounded between +100 and -100, thereby allowing you to clearly
// see changes in net momentum using the 0 level. The bounded scale also allows
// you to conveniently compare values across different securities.
////////////////////////////////////////////////////////////
strategy(title="CMO & WMA", shorttitle="CMO & WMA")
Length = input(9, minval=1)
LengthWMA = input(9, minval=1)
reverse = input(false, title="Trade reverse")
hline(0, color=gray, linestyle=line)
xMom = abs(close - close[1])
xSMA_mom = sma(xMom, Length)
xMomLength = close - close[Length]
nRes = 100 * (xMomLength / (xSMA_mom * Length))
xWMACMO = wma(nRes, LengthWMA)
pos = iff(nRes > xWMACMO, 1,
iff(nRes <= xWMACMO, -1, nz(pos[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)
barcolor(possig == -1 ? red: possig == 1 ? green : blue)
plot(nRes, color=blue, title="CMO")
plot(xWMACMO, color=red, title="WMA")