123 Réversion Moyenne mobile Convergence Divergence Stratégie de combinaison

Auteur:ChaoZhang est là., Date: 2023-11-22 14:49:41
Les étiquettes:

img

Résumé

Cette stratégie combine la stratégie de trading 123 d'inversion proposée par Ulf Jensen dans son livre avec l'oscillateur de divergence de convergence moyenne mobile (KST) proposé par Martin Pring pour construire une stratégie quantitative qui génère des signaux de trading en utilisant des modèles d'inversion et des indicateurs d'oscillation de tendance.

Principe de stratégie

123 Mécanisme de formation inverse

La logique de base de cette partie de la stratégie consiste à surveiller si le cours de clôture de l'action s'est inversé au cours des 2 derniers jours, en particulier:

Si les prix de clôture des 2 derniers jours sont en baisse, c'est-à-dire que le prix de clôture du jour précédent est supérieur à celui du jour précédent; et que le prix de clôture d'aujourd'hui rebondit vers le haut par rapport au jour précédent, qui est supérieur au prix de clôture du jour précédent, cela peut être jugé comme un renversement vers le bas et un signal d'achat est généré.

Au contraire, si les prix de clôture des 2 derniers jours sont en tendance haussière, c'est-à-dire que le prix de clôture de la journée précédente est inférieur à celui de la journée précédente; et que le prix de clôture d'aujourd'hui tombe par rapport au prix de clôture de la journée précédente, ce qui est inférieur au prix de clôture de la journée précédente, cela peut être jugé comme un renversement de la partie supérieure et un signal de vente est généré.

Cette partie de la stratégie combine également l'indicateur stochastique pour déterminer s'il est suracheté ou survendu afin de filtrer les signaux de négociation non inversés.

Principe de l'indicateur KST

Dans l'indicateur KST, ROC représente le taux de variation des prix, en calculant les ROC de 6 jours, 10 jours, 15 jours et 20 jours respectivement, et en effectuant une addition pondérée après l'assouplissement des moyennes mobiles de différents paramètres pour construire l'indicateur KST.

Lorsque la ligne rapide traverse au-dessus de la ligne lente, elle est jugée haussière; lorsque la ligne rapide traverse au-dessous de la ligne lente, elle est jugée baissière.

Cette stratégie utilise KST>0 pour juger de la hausse et KST<0 pour juger de la baisse.

Fusion du signal

Les signaux de jugement de la stratégie d'inversion 123 et de l'indicateur KST sont combinés:

  • Si les deux signaux sont les mêmes, un signal de trading est généré dans cette direction
  • Si les deux signaux sont différents, aucune transaction n'a lieu

On constate que cette stratégie utilise de manière exhaustive deux types d'indicateurs techniques différents, le modèle d'inversion et le jugement des indicateurs, et combine leurs forces de signal pour concevoir une stratégie de négociation quantitative plus avancée.

Les avantages de la stratégie

  • La partie inversion peut identifier efficacement les points tournants, et la partie indicateur peut suivre les tendances, se complétant mutuellement
  • Le filtrage à deux indicateurs peut améliorer la qualité du signal et réduire les faux signaux
  • Adaptation souple des paramètres de la STC pour optimiser les stocks de différents cycles
  • Peut s'adapter à des stocks à forte volatilité, peut également être utilisé pour des stocks relativement stables

Risques liés à la stratégie

  • Risque d'échec de l'inversion, le signal d'inversion peut également être une fausse rupture
  • Certaines opportunités peuvent être manquées après la fusion du signal
  • Des paramètres KST incorrects peuvent interférer fortement avec les résultats
  • Lorsque le prix des actions fluctue fortement, KST est en retard, des signaux inconsistants peuvent apparaître

Des méthodes telles que l'ajustement des paramètres, l'optimisation de la logique d'inversion, l'introduction du mécanisme de stop loss peuvent être utilisées pour contrôler les risques.

Direction de l'optimisation

  • Optimiser les paramètres stochastiques
  • Optimiser les paramètres de longueur de la ligne KST
  • Ajouter un filtre de volume de négociation ou d' indice de volatilité
  • Ajouter un jugement de tendance pour éviter de négocier contre tendance
  • Mettre en place un mécanisme de stop loss

Conclusion

Cette stratégie intègre plusieurs types d'indicateurs techniques différents. Grâce à la confirmation double et à l'optimisation des combinaisons, elle conçoit scientifiquement une stratégie de trading quantitative relativement forte, et c'est un modèle de combinaison de stratégies.


/*backtest
start: 2023-10-22 00:00:00
end: 2023-11-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 23/03/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
// This indicator really is the KST indicator presented by Martin Pring. 
// the KST indicator is a weighted summed rate of change oscillator that 
// is designed to identify meaningful turns. Various smoothed rate of change 
// indicators can be combined to form different measurements of cycles. 
//
// 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


MROC() =>
    pos = 0.0
    xROC6 = sma(roc(close, 6), 10)
    xROC10 = sma(roc(close, 10), 10)
    xROC15 = sma(roc(close, 15), 9)
    xROC20 = sma(roc(close, 20), 15)
    nRes = xROC6 + (2 * xROC10) + (3 * xROC15) + (4 * xROC20)
    pos := iff(nRes > 0, 1,
    	     iff(nRes < 0, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & MovROC (KST indicator)", 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)
//-------------------------
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posMROC = MROC()
pos = iff(posReversal123 == 1 and posMROC == 1 , 1,
	   iff(posReversal123 == -1 and posMROC == -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