Stratégie de croisement des moyennes mobiles adaptatives sur plusieurs délais

Auteur:ChaoZhang est là., Date: 2023-10-09 14:56:37 Je suis désolé
Les étiquettes:

Résumé

Cette stratégie utilise le principe du croisement de la moyenne mobile adaptative sur plusieurs délais pour suivre les tendances.

Principe

La stratégie est principalement basée sur la combinaison du double système de croisement des moyennes mobiles et de l'indicateur MACD. Le double système de croisement des moyennes mobiles se compose de l'EMA rapide et de l'EMA lente, qui calculent respectivement les moyennes mobiles à court et à long terme. Un signal d'achat est généré lorsque la ligne rapide traverse au-dessus de la ligne lente, indiquant que la tendance du marché a changé de baisse à hausse, et une position longue peut être construite. Un signal de vente est généré lorsque la ligne rapide traverse au-dessous de la ligne lente, indiquant que la tendance du marché a changé de hausse à baisse, au moment où la position peut être fermée.

La stratégie combine le jugement de tendance de la moyenne mobile double et le signal de changement de momentum du MACD. Tout en capturant les bénéfices des tendances à moyen et long terme, elle peut filtrer efficacement les fausses ruptures. Plus précisément, lorsque la ligne rapide traverse au-dessus de la ligne lente, si l'histogramme MACD devient vert en même temps, un signal long plus fiable est généré. Au contraire, lorsque la ligne rapide traverse au-dessous de la ligne lente, si l'histogramme MACD devient rouge en même temps, un signal court plus fort est généré.

En outre, la stratégie intègre également une fonctionnalité de paramètre adaptatif. Pendant l'optimisation des paramètres, les périodes de la ligne rapide, de la ligne lente et des paramètres MACD sont automatiquement ajustées en fonction des performances sur différentes périodes de temps, afin de garantir que la stratégie peut atteindre des performances relativement meilleures dans différentes conditions de marché.

Les avantages

  1. Combine un système de moyenne mobile double et un indicateur MACD pour la prise de décision, évitant ainsi d'être induit en erreur par de faux signaux provenant du bruit.

  2. Applique une fonctionnalité de paramètre adaptatif afin que la stratégie puisse ajuster dynamiquement les paramètres pour s'adapter aux changements du marché et optimiser automatiquement les décisions de négociation.

  3. Capture relativement bien les tendances à moyen et long terme, filtre les fausses écarts des marchés à fourchette et obtient des bénéfices supplémentaires des marchés en tendance.

  4. Adopte une analyse à travers les délais pour identifier la direction de la tendance à un degré plus élevé.

  5. Une logique simple et claire, une structure de code optimisée, facile à comprendre et à modifier pour répondre à différents besoins.

Les risques

  1. Le système à moyenne mobile double présente le risque d'être déformé, ne convient pas au marché à fourchette, doit être utilisé pour les stocks et les périodes de temps présentant une tendance évidente.

  2. Le MACD a un effet de retard, ne convient pas pour suivre les tendances en évolution rapide, il doit être combiné avec d'autres indicateurs.

  3. L'optimisation des paramètres nécessite une période suffisamment longue de tests antérieurs et une évaluation stricte des risques pour éviter un surajustement.

  4. Faites attention aux risques systémiques liés à des événements soudains lorsque vous détenez une position longue, arrêtez la perte à temps si nécessaire.

  5. Risque d'optimisation excessive de la fonctionnalité adaptative des paramètres, nécessitant une vérification suffisante pour éviter un ajustement trop fréquent des paramètres.

Directions d'amélioration

  1. Testez différentes combinaisons de moyennes mobiles rapides et lentes pour trouver des paramètres qui filtrent le bruit et respectent la tendance.

  2. Essayez différents ensembles de paramètres MACD pour trouver la combinaison qui reflète le plus tôt le point de changement de tendance.

  3. Ajoutez l'indicateur de tendance comme filtre, faites une pause lorsque la tendance n'est pas claire, pour éviter le fouet.

  4. Introduire un mécanisme de stop loss comme le déplacement de stop loss ou d'ordres en attente pour contrôler les pertes d'une seule transaction.

  5. Essayez des algorithmes d'apprentissage automatique pour former des règles de paramètres adaptatifs avec plus de données, améliorant la stabilité.

  6. Essayez l'arbitrage entre produits pour former un portefeuille de produits corrélés, diversifiant les risques systémiques du marché.

Conclusion

Cette stratégie combine un double indicateur de dynamique de la moyenne mobile et du MACD, ce qui permet d'intégrer organiquement le suivi des tendances et le contrôle du rythme. L'introduction de paramètres adaptatifs rend la stratégie plus robuste pour s'adapter en douceur aux changements du marché. Par rapport aux stratégies à indicateur unique, cette stratégie forme des effets décisionnels plus forts, capables de capturer des profits commerciaux relativement importants des tendances à moyen et long terme. Les prochaines étapes peuvent inclure l'optimisation des paramètres, le contrôle des risques, etc. pour améliorer davantage la stratégie.


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

//@version=3

// To enable alerts: Change 'Strategy' to read 'Study' below  and you also need to comment out lines 43 and 47 - Strategy code

// strategy(title="Riz Coloured MACD", shorttitle="Riz MACD" , initial_capital=5000, default_qty_value=3  )
//study(title="Riz Coloured MACD", shorttitle="Riz MACD")

source = close
fastLength = input(21, minval=1), slowLength=input(55,minval=1)
signalLength=input(9,minval=1)
MACDCandlesCheckedBack=input(6,minval=1)
MACDTolerance=input(4,minval=1)

fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)
macd = fastMA - slowMA
signal = ema(macd, signalLength)
hist = macd - signal

// ====== BASIC COLOURING - IF HISTOGRAM IS HIGHER THAN PREVIOUS 2 CANDLES THEN WE ARE TICKING UP and VISA VERSA ============//

isTickingUp = hist > hist[1] and hist > hist[2] //and hist > hist[3]
isTickingDown = hist < hist[1] and hist < hist[2] // and hist < hist[3]


// ======= MACD STRATEGY CODE ========== //

// Check if MACD is ticking in the right direction to take a trade - adding 1 at the end means it starts at -1 so not to include the current candle
MACDHistHighestHigh= highest(hist, MACDCandlesCheckedBack)[1]
MACDHistLowestLow = lowest(hist, MACDCandlesCheckedBack)[1]

MACDConfirmsLong() => (hist - MACDHistLowestLow) > MACDTolerance
MACDConfirmsShort() => (MACDHistHighestHigh - hist) > MACDTolerance


plot(macd,  title="MACD", color=blue, linewidth=3)
plot(signal,  title="SIGNAL", color=orange, linewidth=3)

// === SIMPLE COLOURING BASED ON LAST 2 CANDLES - EASY TO REFERENCE IN DAY TO DAY MACD USE ====//

plot(hist, title="HIST", color=isTickingDown ? fuchsia : isTickingUp ? lime : green, linewidth=3, style=histogram)

// ==== ALTERNATIVE COLOURING FOR PLOT BASED ON STRATEGY SETTINGS INSTEAD

//plot(hist, title="HIST", color=MACDConfirmsLong() ? lime : MACDConfirmsShort() ? fuchsia : green, linewidth=3, style=histogram)


// === STRATEGY - ENTER POSITIONS - COMMENT OUT TO ENABLE ALERTS === //

strategy.entry(id = "Long", long = true, when = MACDConfirmsLong()) // use function to decide when to go long

strategy.entry(id = "Short", long = false, when = MACDConfirmsShort())

// === CREATE ALERT CONDITIONS === // 

alertup = MACDConfirmsLong()
alertdown = MACDConfirmsShort()

alertcondition(alertup, title='MACD Long', message='Riz MACD says go LONG!')
alertcondition(alertdown, title='MACD Short', message='Riz MACD says go SHORT!')


Plus de