Stratégie d'or croisé à moyenne mobile

Auteur:ChaoZhang est là., Date: 2023-12-27 à 15h56
Les étiquettes:

img

Résumé

Cette stratégie est une stratégie de croisement de moyenne mobile simple. Elle va long lorsque l'EMA rapide traverse au-dessus de l'EMA lente et court lorsque l'EMA rapide traverse au-dessous de l'EMA lente. La stratégie intègre un stop loss, un take profit et un break-even pour contrôler efficacement les risques.

La logique de la stratégie

La stratégie est basée sur des moyennes mobiles rapides et lentes. La ligne rapide est une EMA de 9 jours et la ligne lente est une EMA de 21 jours. Elle va long lorsque la ligne rapide traverse au-dessus de la ligne lente d'en bas. Elle va courte lorsque la ligne rapide traverse au-dessous de la ligne lente d'en haut. Les sorties sont déclenchées par des croisements inversés.

Le stop loss est fixé en fonction d'un pourcentage de clôture. Le take profit est fixé en fonction d'un pourcentage de clôture. Le break-even stop loss se déplace au prix d'entrée lorsque le prix atteint le niveau de break-even.

Analyse des avantages

Les avantages de cette stratégie sont les suivants:

  1. Logie simple et claire, facile à comprendre et à mettre en œuvre
  2. Utilise la tendance suivant la capacité des moyennes mobiles, capturant efficacement les tendances
  3. L'exposé de risque est le montant de la valeur ajoutée à la valeur ajoutée de la valeur ajoutée.
  4. Adaptation flexible des paramètres, optimisée pour différents marchés

Analyse des risques

Il y a des risques:

  1. Émission en retard des moyennes mobiles, signal potentiellement manquant d'inversion
  2. L'établissement d'un stop-loss ou d'un profit-take inapproprié peut entraîner une perte ou une perte de profit inutiles.
  3. Un paramètre mal réglé peut entraîner une sur-trading ou des transactions manquantes

Les solutions:

  1. Optimiser les paramètres et définir correctement les moyennes mobiles
  2. Ajuster le pourcentage stop loss/take profit, assurer un réglage raisonnable
  3. Ajuster les paramètres pour les différents marchés afin d'éviter une survente

Directions d'optimisation

La stratégie peut être optimisée par:

  1. Test des différentes combinaisons de longueur des moyennes mobiles
  2. Réglage des pourcentages d'arrêt des pertes, de prise de bénéfices et d'équilibre pour tenir compte des différentes volatilités du marché
  3. Ajout d'autres indicateurs techniques pour le filtrage des signaux d'entrée
  4. Optimisation dynamique des paramètres par des techniques statistiques ou par l'apprentissage automatique

Résumé

Dans l'ensemble, cette stratégie d'or croisé à moyenne mobile a une logique claire et est facile à mettre en œuvre. Avec le stop loss, le profit et le break-even, elle contrôle les risques. Avec un ajustement et une optimisation appropriés des paramètres pour différents marchés, elle peut obtenir de bonnes performances. Mais les risques de fouets et la difficulté de l'optimisation des paramètres doivent être notés.


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

//@version=4
strategy("XAUUSD Strategy with SL, TP, and BE", shorttitle="EA", overlay=true)

// Define strategy parameters
fastLength = input(9, title="Fast EMA Length")
slowLength = input(21, title="Slow EMA Length")
stopLossPercent = input(1, title="Stop Loss (%)", minval=0, maxval=5) / 100
takeProfitPercent = input(2, title="Take Profit (%)", minval=0, maxval=5) / 100
breakEvenPercent = input(1, title="Break Even (%)", minval=0, maxval=5) / 100

// Calculate EMAs
fastEMA = ema(close, fastLength)
slowEMA = ema(close, slowLength)

// Plot EMAs on the chart
plot(fastEMA, color=color.blue, title="Fast EMA")
plot(slowEMA, color=color.red, title="Slow EMA")

// Strategy logic
enterLong = crossover(fastEMA, slowEMA)
exitLong = crossunder(fastEMA, slowEMA)

enterShort = crossunder(fastEMA, slowEMA)
exitShort = crossover(fastEMA, slowEMA)

// Calculate stop loss, take profit, and break-even levels
longStopLoss = close * (1 - stopLossPercent)
longTakeProfit = close * (1 + takeProfitPercent)
shortStopLoss = close * (1 + stopLossPercent)
shortTakeProfit = close * (1 - takeProfitPercent)

longBreakEven = close * (1 + breakEvenPercent)
shortBreakEven = close * (1 - breakEvenPercent)

// Execute strategy with stop loss, take profit, and break-even
strategy.entry("Long", strategy.long, when = enterLong)
strategy.exit("Take Profit/Stop Loss Long", from_entry="Long", profit = longTakeProfit, loss = longStopLoss)

strategy.entry("Short", strategy.short, when = enterShort)
strategy.exit("Take Profit/Stop Loss Short", from_entry="Short", profit = shortTakeProfit, loss = shortStopLoss)

// Move stop loss to break even when price reaches break-even level
strategy.exit("Break Even Long", from_entry="Long", loss = longBreakEven)
strategy.exit("Break Even Short", from_entry="Short", loss = shortBreakEven)


Plus de