Les ressources ont été chargées... Je charge...

Stratégie de renversement de la moyenne mobile double

Auteur:ChaoZhang est là., Date: le 26 septembre 2023
Les étiquettes:

Résumé

La double stratégie d'inversion de moyenne mobile est une stratégie de trading qui combine les principes de la moyenne moyenne et de la moyenne mobile. Elle génère d'abord des signaux de trading d'inversion en utilisant la méthodologie d'inversion 123, puis filtre les signaux avec des moyennes mobiles exponentielles 2/20, ne prenant des transactions que lorsque les signaux des deux correspondent pour améliorer la robustesse.

La logique de la stratégie

La stratégie se compose de deux parties:

  1. 123 Stratégie d'inversion

La stratégie d'inversion 123 est basée sur l'idée que si le prix de clôture tombe d'un niveau élevé à un niveau bas sur 2 jours, et que le stochastique lent de 9 jours est inférieur à 50, cela indique un point d'inversion pour aller long.

  1. 2/20 Stratégie de moyenne mobile exponentielle

Cette stratégie utilise l'EMA 2/20 pour déterminer la tendance à long terme. Lorsque le prix est au-dessus de la ligne EMA 2/20, il indique une tendance haussière. Lorsque le prix est en dessous de la ligne EMA 2/20, il indique une tendance à la baisse. Cela filtre les fausses ruptures.

La stratégie ne génère des signaux de trading que lorsque le signal de renversement 123 s'aligne sur le signal EMA 2/20.

Analyse des avantages

Cette stratégie présente les avantages suivants, en combinant des revers à court terme et des tendances à long terme:

  1. Capture des opportunités de bénéfices élevés liées aux revers à court terme

Les 123 objectifs d'inversion visent les scénarios de surachat et de survente où des fluctuations de prix importantes se produisent souvent, permettant des objectifs de profit plus élevés.

  1. 2/20 Filtre EMA évite les risques de fausse rupture

Les stratégies d'inversion pures sont sensibles aux marchés en tendance. Le filtre EMA 2/20 élimine les signaux contre la tendance, empêchant les mauvais métiers lors de faux-bous.

  1. Les conditions doubles améliorent le profil de risque-récompense

Un seul indicateur génère souvent des signaux erronés.La combinaison de deux indicateurs complémentaires améliore considérablement la fiabilité et les résultats en termes de risque-rendement.

  1. Une logique claire rend l'optimisation intuitive

La fonctionnalité claire de chaque composant rend la logique intuitive pour comprendre, optimiser et s'adapter aux environnements changeants du marché.

Analyse des risques

Malgré les avantages, certains risques doivent être pris en considération:

  1. Les retours ne se concrétiseront peut-être pas

Les performances passées ne garantissent pas les résultats futurs. L'ampleur du rebond réel est incertaine et peut entraîner des pertes.

  1. Les tendances peuvent s'étendre

L'EMA 2/20 ne peut pas filtrer complètement les marchés en forte tendance. Les corrections à court terme peuvent encore être dépassées par la tendance plus large.

  1. L'optimisation des paramètres est cruciale

Les performances sont très sensibles aux paramètres qui doivent être optimisés de manière robuste grâce à des tests antérieurs approfondis et adaptés à l'évolution des marchés.

  1. Efficacité à long terme incertaine

Les bons résultats à court terme ne garantissent pas des performances durables. Les marchés sont très stochastiques et les résultats à long terme nécessitent une validation robuste dans divers environnements.

Ces risques peuvent être gérés grâce à l'ajustement des paramètres, au stop loss, au contrôle des risques, etc. Plus de conditions telles que le volume, les indicateurs de volatilité peuvent améliorer la robustesse.

Des possibilités d'amélioration

Quelques moyens d'optimiser davantage la stratégie:

  1. Optimiser les paramètres d'inversion

Testez différents ensembles de paramètres pour trouver des modèles d'inversion plus stables et plus prononcés pour des signaux de meilleure qualité.

  1. Optimiser les systèmes de moyenne mobile

L'évaluation de la tendance est plus précise si l'on expérimente différents paramètres de l'AM ou si l'on intègre plusieurs contrôles de l'AM.

  1. Ajouter plus de filtres

Le volume, la volatilité et d'autres filtres peuvent être incorporés pour réduire les faux signaux et améliorer la stabilité.

  1. Mettre en œuvre une optimisation dynamique

Les techniques d'apprentissage automatique sur de grands ensembles de données historiques pourraient permettre un réglage dynamique et robuste des paramètres.

  1. Incorporer des stratégies de stop loss

Des règles de stop loss intelligentes permettent de contrôler le tirage maximum et l'exposition au risque.

  1. Optimiser la gestion de l'argent

Une meilleure dimensionnement des positions et une meilleure répartition des capitaux peuvent améliorer les performances globales.

Conclusion

L'inversion de la moyenne mobile double est une stratégie de trading à court terme simple mais pratique. En combinant l'inversion moyenne et les concepts de suivi de tendance, elle vise à tirer profit d'inversions de prix à forte probabilité tout en évitant de fausses ruptures. La logique claire la rend intuitive à comprendre, optimiser et appliquer. Cependant, aucune stratégie n'est sans risque. Des améliorations continues de la robustesse et de la gestion des risques sont nécessaires pour extraire des profits constants dans divers environnements de trading.


/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-25 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 06/08/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 plots 2/20 exponential moving average. For the Mov 
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// 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


EMA220(Length) =>
    pos = 0.0
    xPrice = close
    xXA = ema(xPrice, Length)
    nHH = max(high, high[1])
    nLL = min(low, low[1])
    nXS = iff((nLL > xXA)or(nHH < xXA), nLL, nHH)
    pos :=  iff(close > xXA and close > nXS , 1,
    	     iff(close < xXA and close < nXS, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & 2/20 Exponential MA", 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)
//-------------------------
line2 = input(true, "---- 2/20 Exponential MA ----")
LengthMA = input(20, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posEMA220 = EMA220(LengthMA)
pos = iff(posReversal123 == 1 and posEMA220 == 1 , 1,
	   iff(posReversal123 == -1 and posEMA220 == -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