Stratégie quantique CMO à double inversion


Date de création: 2024-01-04 14:35:23 Dernière modification: 2024-01-04 14:35:23
Copier: 0 Nombre de clics: 557
1
Suivre
1621
Abonnés

Stratégie quantique CMO à double inversion

Aperçu

Cette stratégie est une stratégie de double inversion, combinant l’indicateur de inversion 123 et l’indicateur quantique CMOWMA, permettant une double confirmation du signal de revers des prix, avec un effet visuel de ligne K de teinte rouge-vert.

Principe de stratégie

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

  1. 123 Indicateur de renversement

    • La relation entre la taille du prix de clôture et celle de la clôture d’hier est utilisée pour déterminer la hausse ou la baisse des prix.
    • Utilisation de l’indicateur stochastique pour la confirmation du signal de retournement en croisant la ligne rapide et la ligne lente
    • générer un signal de sur- ou de vide lorsque les conditions sont remplies
  2. Indicateur quantique CMOWMA

    • Mesurer la dynamique des prix à l’aide de l’indicateur CMO
    • Moyenne mobile pondérée WMA pour l’indicateur CMO
    • Indicateur CMO plus élevé que (inférieur à) son WMA plus élevé que (zéro)

Les deux parties du signal entrent en position simultanément.

Avantages stratégiques

  1. Mécanisme de double confirmation, qui permet de filtrer les fausses déclarations et de réduire les positions inutiles
  2. Ligne K rouge-vert, qui crée un effet visuel et permet de juger de la situation du marché.
  3. Une bonne stabilité globale grâce à une combinaison d’indicateurs de retournement et de dynamisme
  4. Paramètres simples, adaptés à de nombreuses variétés, faciles à mettre en œuvre

Risque stratégique

  1. Le risque d’un retour en arrière après un retour en arrière
  2. La fréquence des changements de position entraîne des frais de transaction excessifs
  3. Une mauvaise configuration des paramètres peut entraîner un signal trop ou trop peu
  4. Les paramètres CMO doivent être adaptés aux caractéristiques de la variété

Il est possible de réduire le risque en assouplissant de manière appropriée les conditions de reprise, en augmentant le temps de détention et en optimisant les combinaisons de paramètres.

Optimisation de la stratégie

  1. On peut tester l’effet de différents paramètres stochastiques
  2. Peut être combiné avec d’autres indicateurs tels que MACD, KDJ, etc. pour remplacer ou ajouter la confirmation
  3. Optimisation de différents paramètres de longueur CMO et WMA peut être testée
  4. Vous pouvez essayer d’ajouter des stop-loss à des niveaux spécifiques.
  5. Les conditions de filtrage peuvent être réglées pour contrôler la fréquence d’ouverture

Résumer

La stratégie est globalement robuste, les paramètres sont simples et faciles à mettre en œuvre, tout en combinant les indicateurs de retournement de prix et de dynamique, pour former un mécanisme de filtrage de double signal efficace, qui peut filtrer les faux signaux, et l’effet de teinture de la ligne K est intuitif. La performance de la stratégie peut être encore améliorée par l’optimisation des paramètres et le contrôle du risque.

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 19/08/2019
// 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 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.
//
// 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

CMOWMA(Length, LengthWMA) =>
    pos = 0
    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))) 
    pos

strategy(title="Combo Backtest 123 Reversal & CMO & WMA", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthCMO = input(14, minval=1)
LengthWMA = input(13, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posCMOWMA = CMOWMA(LengthCMO, LengthWMA)
pos = iff(posReversal123 == 1 and posCMOWMA == 1 , 1,
	   iff(posReversal123 == -1 and posCMOWMA == -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 )