La stratégie de Mala pour les moyennes mobiles adaptatives

Auteur:ChaoZhang est là., Date: 2023-12-07 11h08 et 18h
Les étiquettes:

img

Résumé

La Mala Adaptive Moving Average Strategy est une stratégie de trading quantitative basée sur l'indicateur MESA Adaptive Moving Average développé par John Ehlers.

La logique de la stratégie

La stratégie Mala Adaptive Moving Average utilise un générateur d'ondes sinusoïdales pour produire des signaux de trading. L'onde sinusoïdale est déterminée par l'ombre projetée sur l'axe vertical par un vecteur tournant (appelé phasor). Lorsque le vecteur tourne à 360 degrés, un cycle est terminé. Les signaux d'achat sont générés lorsque le vecteur passe un angle, et les signaux de vente lorsqu'il passe un autre angle. Ainsi, les décisions de trading sont définies en termes d'angles dans le domaine de la fréquence plutôt que de caractéristiques de forme d'onde dans le domaine du temps, ce qui rend la stratégie plus robuste à travers différents contrats à terme et conditions de marché.

Plus précisément, la stratégie lissue et détrente d'abord le prix, puis calcule deux composants de l'onde sinusoïdale: la composante en phase I et la composante de quadrature Q. Ces deux composants sont superposés et filtrés par déplacement de phase pour obtenir les ondes sinusoïdale finales Re et Im. Re et Im reflètent les informations de fréquence de l'onde sinusoïdale.

Analyse des avantages

La stratégie des moyennes mobiles adaptatives de Mala présente les avantages suivants:

  1. L'utilisation d'ondes sinusoïdales et de phases comme signaux commerciaux rend la stratégie plus robuste, non affectée par les caractéristiques de la forme d'onde dans le domaine temporel.

  2. La capacité d'adaptation des périodes et des paramètres permet une forte adaptabilité aux changements du marché.

  3. Les courbes MAMA et FAMA dépendent uniquement des caractéristiques des prix sans décalage, capturant les renversements de tendance en temps opportun.

  4. La sensibilité de la stratégie peut être ajustée grâce à un réglage des paramètres pour s'adapter à différents styles de trading.

  5. La logique claire et simple facilite la compréhension, la modification et l'application pour la recherche et l'enseignement.

Analyse des risques

La stratégie des moyennes mobiles adaptatives de Mala comporte également les risques suivants:

  1. En fonction des périodes et des phases de la courbe sinusoïdale, des distorsions anormales des prix peuvent générer des signaux incorrects.

  2. Les limites strictes fixées dans l'estimation des périodes entraînent une fluidité insuffisante des changements de période.

  3. Le verrouillage de phase et le verrouillage de période autour des points clés entraînent des oscillations des courbes, manquant potentiellement des entrées et sorties optimales.

  4. L'adaptabilité des paramètres et des courbes diminue lors d'une volatilité accrue du marché.

  5. En tant qu'indicateur technique, la stratégie a tendance à produire de fausses ruptures et des signaux erronés autour de niveaux techniques importants.

Ces risques pourraient être atténués par des paramètres plus fluides, le filtrage des signaux par d'autres indicateurs, l'ajustement du dimensionnement des positions, etc.

Directions d'optimisation

La stratégie des moyennes mobiles adaptatives de Mala peut être améliorée dans les aspects suivants:

  1. Améliorer le calcul des périodes et des paramètres pour une plus grande fluidité naturelle, par exemple en introduisant des méthodes statistiques pour une meilleure modélisation des prix.

  2. Filtrer les signaux avec la volatilité, le volume et les fondamentaux pour améliorer la précision.

  3. Optimiser les paramètres et le contrôle des glissements pour réduire les coûts de négociation et améliorer la robustesse.

  4. Introduire des algorithmes d'apprentissage automatique et génétiques pour l'optimisation dynamique des paramètres.

  5. Développer des combinaisons avec des systèmes de tendance et de réversion moyenne basés sur différentes entrées et sorties pour améliorer la rentabilité.

Conclusion

La Mala Adaptive Moving Average Strategy utilise l'analyse des ondes sinusoïdales pour générer des signaux de trading, s'adaptant automatiquement aux changements du marché grâce à un réglage dynamique des paramètres, ce qui la rend assez robuste et largement applicable. Par rapport aux autres stratégies de moyennes mobiles adaptatives, elle démontre une plus grande faisabilité et stabilité. Mais en tant que stratégie technique, elle est sujette à de mauvais signaux autour de niveaux techniques importants, nécessitant un filtrage et une optimisation avec des outils auxiliaires. Avec une amélioration continue, cette stratégie a le potentiel de devenir un système de trading adaptatif recommandé.


/*backtest
start: 2022-11-30 00:00:00
end: 2023-12-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © dongyun

//@version=4
strategy("自适应移动平均的MESA系统", overlay=true)

fastlimit = input(0.5,'')
slowlimit = input(0.05,'')

smooth = 0.0
detrender = 0.0
I1 = 0.0
Q1 = 0.0
JI = 0.0
JQ = 0.0
I2 = 0.0
Q2 = 0.0
Re = 0.0
Im = 0.0
period = 0.0
smoothperiod = 0.0
phase = 0.0
deltaphase = 0.0
alpha = 0.0
MAMA = 0.0
FAMA = 0.0
price = 0.0

price := (high + low)/2
PI = 2 * asin(1)

if (bar_index > 5)
	smooth := (4*price + 3*price[1] + 2*price[2] + price[3])/10
	detrender := (.0962*smooth + .5769*nz(smooth[2]) - .5769*nz(smooth[4]) - .0962*nz(smooth[6]))*(.075*nz(period[1]) + .54)

	// compute InPhase and Quadrature components
	Q1 := (.0962*detrender + .5769*nz(detrender[2]) - .5769*nz(detrender[4]) - .0962*nz(detrender[6]))*(.075*nz(period[1]) + .54)

	I1 := nz(detrender[3])

	// advance the pulse of i1 and q1 by 90 degrees
	JI := (.0962*I1 + .5769*nz(I1[2]) - .5769*nz(I1[4]) - .0962*nz(I1[6]))*(.075*nz(period[1]) + .54)
	JQ := (.0962*Q1 + .5769*nz(Q1[2]) - .5769*nz(Q1[4]) - .0962*nz(Q1[6]))*(.075*nz(period[1]) + .54)

	//phase addition for 3-bar averaging 
	I2 := I1 - JQ
	Q2 := Q1 + JI

	//smooth the i and q components before applying
	I2 := .2*I2 + .8*nz(I2[1])
	Q2 := .2*Q2 + .8*nz(Q2[1])

	// hymodyne discriminator
	Re := I2*I2[1] + Q2*nz(Q2[1])
	Im := I2*Q2[1] + Q2*nz(I2[1])
	Re := .2*Re + .8*nz(Re[1])
	Im := .2*Im + .8*nz(Im[1])

	if (Im != 0 and Re != 0)
		period := 2 * PI/atan(Im/Re)

	if (period > 1.5 * nz(period[1]))
		period := 1.5*nz(period[1])

	if (period < .67*nz(period[1]))
		period := .67*nz(period[1])

	if (period < 6)
		period := 6

	if (period > 50)
		period := 50

	period := .2*period + .8*nz(period[1])
	smoothperiod := .33*period + .67*nz(smoothperiod[1])

	if (I1 != 0)
		phase := (180/PI) * atan(Q1/I1)

	deltaphase := nz(phase[1]) - phase

	if (deltaphase < 1)
		deltaphase := 1

	alpha := fastlimit/deltaphase
	if(alpha < slowlimit)
		alpha := slowlimit

	MAMA := alpha*price + (1 - alpha)*nz(MAMA[1])
	FAMA := .5*alpha*MAMA + (1 - .5*alpha)*nz(FAMA[1])

	if (FAMA < MAMA)
		strategy.entry("Long", strategy.long)
	else
		if (FAMA > MAMA)
			strategy.entry("Short", strategy.short)


Plus de