Stratégie de sortie de la cloche d'ouverture de la moyenne mobile de prise de bénéfices précoce

Auteur:ChaoZhang est là., Date: 2023-12-01 14:32:48 Je vous en prie.
Les étiquettes:

img

Résumé

Cette stratégie met en œuvre des opérations longues et courtes basées sur des croisements de moyennes mobiles et ne se termine qu'après-midi sur la base de statistiques préliminaires de prise de bénéfices afin d'éviter d'être pris au piège par une forte volatilité d'ouverture.

La logique de la stratégie

La stratégie utilise 3 moyennes mobiles avec des paramètres différents: lignes de 14 jours, 28 jours et 56 jours. Elle devient longue lorsque la ligne de 14 jours traverse au-dessus de la ligne de 56 jours, et court lorsqu'elle traverse en dessous. Cette approche de base suit les tendances à long terme.

L'innovation clé est qu'il arrête les pertes et ne prend des bénéfices qu'entre 16h et 17h. Les statistiques montrent une probabilité de 70% d'un haut / bas quotidien se produisant dans la première heure après l'ouverture.

Analyse des avantages

Les avantages de cette stratégie sont les suivants:

  1. Suivre les tendances à moyen et long terme, éviter le bruit excessif
  2. Utiliser les statistiques de volatilité d'ouverture pour la logique de stop loss afin d'éviter les fausses ruptures
  3. Logie simple et intuitive, facile à comprendre et à modifier

Risques et solutions

Il y a aussi des risques:

  1. Les opportunités manquées si l'inversion se produit tôt dans la journée peuvent tester la compatibilité avec des stocks spécifiques.
  2. Il y a toujours des risques d'être pris au piège après les heures de travail.
  3. Un mauvais réglage de la période de backtest conduit à un surajustement.

Des possibilités d'amélioration

Quelques moyens d'optimiser davantage la stratégie:

  1. Testez différentes combinaisons de moyennes mobiles pour trouver les paramètres optimaux
  2. Variété fine-tune stop loss basée sur les tendances de volatilité des stocks spécifiques
  3. Ajouter un filtre de volume pour éviter les pièges
  4. Ajoutez des arrêts dynamiques aux retraits de piste après les ruptures

Conclusion

La stratégie a une logique claire et simple, utilise efficacement les fonctionnalités d'ouverture pour le stop loss pour éviter les pièges de volatilité.


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

//@version=2
strategy("MAC 1st Trading Hour Walkover", overlay=true)

// Setting up timeperiod for testing
startPeriodYear = input(2014, "Backtest Start Year")
startPeriodMonth = input(1, "Backtest Start Month")
startPeriodDay = input(2, "Backtest Start Day")
testPeriodStart = timestamp(startPeriodYear, startPeriodMonth, startPeriodDay, 0, 0)

stopPeriodYear = input(2025, "Backtest Stop Year")
stopPeriodMonth = input(12, "Backtest Stop Month")
stopPeriodDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(stopPeriodYear, stopPeriodMonth, stopPeriodDay, 0, 0)

// Moving Averages
ema14 = ema(close, 14)
ema28 = ema(close, 28)
sma56 = sma(close, 56)

// Plot
plot(ema14, title="ema14", linewidth=2, color=green)
plot(ema28, title="ema28", linewidth=2, color=red)
plot(sma56, title="sma56", linewidth=3, color=blue)

// Strategy
goLong = cross(ema14, sma56) and ema14 > ema28
goShort = cross(ema14, sma56) and ema14 < ema28

// Strategy.When to enter
if time >= testPeriodStart
    if time <= testPeriodStop
        strategy.entry("Go Long", strategy.long, 1.0, when=goLong)
        strategy.entry("Go Short", strategy.short, 1.0, when=goShort)

// Strategy.When to take profit 
if time >= testPeriodStart 
    if time <= testPeriodStop 
        strategy.exit("Close Long", "Go Long", profit=2000) 
        strategy.exit("Close Short", "Go Short", profit=2000) 

// Strategy.When to stop out 
// Some studies show that 70% of the days high low happen in the first hour 
// of trading. To avoid having that volatility fire our loss stop we 
// ignore price action in the morning, but allow stops to fire in the afternoon. 
if time("60", "1000-1600") 
    strategy.exit("Close Long", "Go Long", loss=500) 
    strategy.exit("Close Short", "Go Short", loss=500)

Plus de