Tout sur la stratégie de trading de l' élan avec Stop Loss pour l' or

Auteur:ChaoZhang est là., Date: 2024-02-20 16h27 et 18h
Les étiquettes:

img

Résumé

Cette stratégie calcule l'écart du prix de l'or par rapport à sa moyenne mobile exponentielle de 21 jours pour déterminer les situations de surachat et de survente sur le marché.

La logique de la stratégie

  1. Calculer l'EMA à 21 jours comme référence
  2. Calcul de l'écart de prix par rapport à l'EMA
  3. Standardiser la déviation en Z-Score
  4. Allez long lorsque le score Z dépasse 0,5; allez court lorsque le score Z dépasse -0,5
  5. Position fermée lorsque le Z-Score tombe à 0,5/-0,5 seuil
  6. Mettez un stop loss lorsque le score Z dépasse 3 ou est inférieur à -3

Analyse des avantages

Les avantages de cette stratégie sont les suivants:

  1. EMA comme support/résistance dynamique pour capturer les tendances
  2. Stddev et Z-Score mesurent efficacement les niveaux de surachat/survente, réduisant ainsi les faux signaux
  3. L'EMA exponentielle accorde plus de poids aux prix récents, ce qui la rend plus sensible
  4. Z-Score standardise la déviation pour les règles de jugement unifiées
  5. Le mécanisme de stop loss contrôle le risque et limite les pertes

Analyse des risques

Quelques risques à prendre en considération:

  1. L' EMA peut générer de mauvais signaux lorsque les prix s'effondrent ou s'effondrent
  2. Les seuils de Stddev/Z-Score doivent être ajustés correctement pour des performances optimales
  3. Un mauvais réglage du stop loss pourrait entraîner des pertes inutiles.
  4. Les événements du cygne noir peuvent déclencher un stop loss et une occasion de tendance manquée

Les solutions:

  1. Optimiser le paramètre EMA pour identifier les principales tendances
  2. Test de retour pour trouver les seuils optimaux de Stddev/Z-Score
  3. Rationalisation des pertes de test par arrêt avec arrêt de trail
  4. Réévaluer le marché après l'événement, ajuster la stratégie en conséquence

Directions d'optimisation

Quelques façons d'améliorer la stratégie:

  1. Utilisez des indicateurs de volatilité comme ATR au lieu de Stddev simple pour mesurer l'appétit pour le risque
  2. Tester différents types de moyennes mobiles pour une meilleure référence
  3. Optimiser le paramètre EMA pour trouver la meilleure période
  4. Optimiser les seuils de Z-Score pour une meilleure performance
  5. Ajouter des arrêts basés sur la volatilité pour un contrôle plus intelligent des risques

Conclusion

Dans l'ensemble, il s'agit d'une stratégie de suivi de tendance solide. Il utilise l'EMA pour définir la direction de la tendance et l'écart normalisé pour identifier clairement les niveaux de surachat / survente pour les signaux commerciaux. Des contrôles raisonnables du risque de stop-loss tout en laissant courir les bénéfices. Un ajustement supplémentaire des paramètres et l'ajout de conditions peuvent rendre cette stratégie plus robuste pour une application pratique.


/*backtest
start: 2024-01-20 00:00:00
end: 2024-02-19 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("GC Momentum Strategy with Stoploss and Limits", overlay=true)

// Input for the length of the EMA
ema_length = input.int(21, title="EMA Length", minval=1)

// Exponential function parameters
steepness = 2

// Calculate the EMA
ema = ta.ema(close, ema_length)

// Calculate the deviation of the close price from the EMA
deviation = close - ema

// Calculate the standard deviation of the deviation
std_dev = ta.stdev(deviation, ema_length)

// Calculate the Z-score
z_score = deviation / std_dev

// Long entry condition if Z-score crosses +0.5 and is below 3 standard deviations
long_condition = ta.crossover(z_score, 0.5)

// Short entry condition if Z-score crosses -0.5 and is above -3 standard deviations
short_condition = ta.crossunder(z_score, -0.5)

// Exit long position if Z-score converges below 0.5 from top
exit_long_condition = ta.crossunder(z_score, 0.5)

// Exit short position if Z-score converges above -0.5 from below
exit_short_condition = ta.crossover(z_score, -0.5)

// Stop loss condition if Z-score crosses above 3 or below -3
stop_loss_long = ta.crossover(z_score, 3)
stop_loss_short = ta.crossunder(z_score, -3)

// Enter and exit positions based on conditions
if (long_condition)
    strategy.entry("Long", strategy.long)
if (short_condition)
    strategy.entry("Short", strategy.short)
if (exit_long_condition)
    strategy.close("Long")
if (exit_short_condition)
    strategy.close("Short")
if (stop_loss_long)
    strategy.close("Long")
if (stop_loss_short)
    strategy.close("Short")

// Plot the Z-score on the chart
plot(z_score, title="Z-score", color=color.blue, linewidth=2)

// Optional: Plot zero lines for reference
hline(0.5, "Upper Threshold", color=color.red)
hline(-0.5, "Lower Threshold", color=color.green)


Plus de