Stratégie de négociation d'inversion basée sur une fourchette de moyenne mobile

Auteur:ChaoZhang est là., Date: 2024-01-25 14h16 et 28
Les étiquettes:

img

Résumé

Cette stratégie s'appelle Reversal de la fourchette des moyennes mobiles. Elle identifie les opportunités d'inversion du marché en calculant les croisements entre les moyennes mobiles de différents délais et en prenant les positions longues / courtes appropriées.

La logique de la stratégie

La stratégie calcule simultanément 3 moyennes mobiles:

  1. Rapide MA (longueur): reflétant les dernières variations de prix
  2. Lente MA (longueur): reflète les tendances des prix à moyen terme
  3. Le plus lent MA (longueur): reflète les tendances des prix à long terme

Lorsque l'EM rapide dépasse l'EM lent, cela indique un renversement de tendance à court terme vers la hausse.

Pour éviter de faux signaux, un 4ème MA est introduit comme le filtre à long terme (longueur).

Les règles de négociation spécifiques sont les suivantes:

  1. Lorsque le MA rapide dépasse le MA lent, et que le MA lent dépasse également le MA le plus lent (bullish à court terme), tandis que le prix est au-dessus du filtre à long terme, passez long.

  2. Lorsque le MA rapide dépasse le MA lent, et que le MA lent dépasse également le MA le plus lent (baisse à court terme), tandis que le prix est en dessous du filtre à long terme, passez court.

Analyse des avantages

Les avantages de cette stratégie sont les suivants:

  1. Utiliser plusieurs délais pour identifier plus précisément les changements de tendance et réduire les faux signaux.
  2. Le filtrage à long terme évite les transactions mal positionnées avant un renversement de tendance majeur.
  3. Des règles simples et claires, faciles à comprendre et à automatiser.
  4. Les stratégies d'inversion bénéficient d'un biais positif dans les rendements et les bénéfices.
  5. Un bon backtest permet de simuler des transactions en direct en ce qui concerne les rendements et le facteur de profit.

Analyse des risques

Les risques liés à cette stratégie sont les suivants:

  1. Les stratégies de MA sont sensibles aux paramètres.
  2. Une fausse rupture des signaux de renversement peut entraîner des pertes.
  3. Des virements latéraux prolongés peuvent annuler les bénéfices des retours répétés.
  4. Le prix peut s'inverser et s'accélérer avec force, faute d'un stop loss opportun.

Les solutions:

  1. Optimisez les paramètres pour trouver la meilleure combinaison.
  2. Augmentez le temps de confirmation du signal pour éviter les faux signaux.
  3. Élargir la plage de stop-loss pour contrôler le montant des pertes.

Directions d'optimisation

La stratégie peut être améliorée dans les domaines suivants:

  1. Testez plus d'ensembles de paramètres pour trouver des valeurs optimales.
  2. Ajouter un filtre de volume pour éviter les faux signaux dans des conditions de faible volume.
  3. Incorporer d'autres indicateurs pour confirmer les signaux d'entrée.
  4. Mettre en œuvre un réglage dynamique du stop loss pour un meilleur contrôle de la sortie.
  5. Optimiser la gestion des risques pour un contrôle plus strict des risques.

Conclusion

Cette stratégie négocie les renversements du marché identifiés par les croisements MA, avec une orientation guidée par le filtre à long terme. Elle capte efficacement les opportunités aux points tournants. Les résultats positifs du backtest montrent une bonne rentabilité pour une application en direct.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5

strategy("Moving Average Trap", overlay=true)

flenght = input.int(title="Fast MA Period", minval=1, maxval=2000, defval=3)
llenght = input.int(title="Slower MA Period", minval=1, maxval=2000, defval=5)
sslenght = input.int(title="Slowest MA Period", minval=1, maxval=2000, defval=8)
tlenght = input.int(title="Trend Filter MA Period", minval=1, maxval=2000, defval=200)

ssma = ta.sma(close, sslenght)
fma = ta.sma(close, flenght)
sma = ta.sma(close, llenght)
tma = ta.sma(close, tlenght)

plot(fma, color=color.red)
plot(sma, color=color.white)
plot(ssma, color=color.green)
plot(tma, color=color.maroon, linewidth=2)

short =  (fma > sma and sma > ssma) and close < tma
long = (fma < sma and sma < ssma) and close > tma
closeshort = fma < sma and sma < ssma
closelong = fma > sma and sma > ssma

if long
	strategy.entry("long", strategy.long)
if closelong
	strategy.close("long")
if short
	strategy.entry("short", strategy.short)
if closeshort
	strategy.close("short")

//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)

Plus de