Stratégie de négociation quantitative croisée des moyennes mobiles doubles EMA23/EMA50

Auteur:ChaoZhang est là., Date: 2024-04-26 15h29 et 21h
Les étiquettes:Le taux d'intérêtRésultats de l'évaluationEMA50

img

Résumé

Cette stratégie est basée sur les signaux de croisement de l'EMA23 et de l'EMA50 pour le trading. Lorsque l'EMA23 franchit l'EMA50, elle génère un signal d'achat, et lorsqu'elle le franchit en dessous, elle génère un signal de vente. La stratégie implémente également un stop-loss pour les positions longues lorsque le prix tombe en dessous de l'EMA50 et pour les positions courtes lorsque le prix dépasse l'EMA50.

Principes de stratégie

  1. Calculer les deux moyennes mobiles exponentielles: EMA23 et EMA50.
  2. Générer un signal d'achat lorsque l'EMA23 dépasse l'EMA50 et un signal de vente lorsque l'EMA23 dépasse l'EMA50.
  3. Pour les positions longues, mettre en œuvre un stop-loss si le prix tombe en dessous de l'EMA50 et que le prix de clôture est inférieur à l'EMA50 de la bougie précédente.
  4. Pour les positions courtes, mettre en œuvre un stop-loss si le prix dépasse l'EMA50 et que le prix de clôture est supérieur à l'EMA50 de la bougie précédente.
  5. Pour les positions longues, réentrer sur le marché si le prix remonte au-dessus de l'EMA50, le prix de clôture et le prix élevé étant à la fois supérieurs à l'EMA50 et l'EMA23 supérieur à l'EMA50.
  6. Pour les positions courtes, réentrer sur le marché si le prix retombe en dessous de l'EMA50, le prix de clôture et le prix bas étant à la fois inférieurs à l'EMA50 et l'EMA23 inférieur à l'EMA50.
  7. Définir le niveau de profit pour les positions longues à 1,6 fois le prix d'entrée et pour les positions courtes à 0,75 fois le prix d'entrée.

Les avantages de la stratégie

  1. Le double croisement des moyennes mobiles est un indicateur simple et efficace de suivi des tendances qui permet de détecter les tendances.
  2. Le mécanisme de stop-loss aide à contrôler le risque et empêche les pertes de s'étendre.
  3. Le mécanisme de réintégration permet à la stratégie de retrouver les tendances, ce qui augmente le potentiel de profit.
  4. Les niveaux de prise de bénéfices aident à verrouiller les bénéfices en temps opportun.
  5. Le délai de 30 minutes offre plus d'opportunités commerciales tout en filtrant un certain bruit.

Risques stratégiques

  1. L'EMA, en tant qu'indicateur de tendance, présente un décalage et peut manquer les points d'entrée optimaux.
  2. Le placement des niveaux de stop-loss peut ne pas être optimisé, ce qui entraîne des stop-outs prématurés.
  3. Les échanges fréquents peuvent augmenter les coûts de transaction et affecter la rentabilité.
  4. La stratégie peut générer davantage de faux signaux sur un marché variable.
  5. Des niveaux de profit fixes peuvent limiter le potentiel de profit de la stratégie.

Directions d'optimisation de la stratégie

  1. Envisager d'introduire d'autres indicateurs techniques pour aider à déterminer la tendance et améliorer les points d'entrée et de sortie, tels que le MACD, le RSI, etc.
  2. Optimiser le placement des niveaux de stop-loss, en considérant l'utilisation d'indicateurs de volatilité tels que l'ATR pour ajuster dynamiquement les positions de stop-loss.
  3. Contrôler la fréquence des transactions en établissant des conditions de filtrage appropriées pour réduire les faux signaux.
  4. Utiliser des paramètres de stratégie différents pour les marchés en évolution et en tendance.
  5. Faire en sorte que les niveaux de bénéfices soient plus souples, par exemple en les ajustant dynamiquement en fonction de la volatilité du marché, du rapport risque/rendement, etc.

Résumé

Cette stratégie est une stratégie de trading quantitative basée sur le croisement de deux moyennes mobiles, EMA23 et EMA50. Elle capte les tendances à travers les signaux de croisement et implémente des mécanismes de stop-loss et de réentrée pour contrôler le risque et augmenter le potentiel de profit. La stratégie est simple et facile à comprendre, adaptée au trading à moyen et court terme sur la période de 30 minutes. Cependant, la stratégie présente également certaines limitations, telles que l'identification de la tendance en retard, le placement de stop-loss sous-optimal et une mauvaise performance sur les marchés en évolution.


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

//@version=5
strategy("EMA Crossover Strategy", overlay=true)

// EMA 23 ve EMA 50'nin hesaplanması
ema23 = ta.ema(close, 23)
ema50 = ta.ema(close, 50)

// Ana alım kuralı: EMA 23 ve EMA 50'nin yukarı kesilmesi
buySignal = ta.crossover(ema23, ema50)

// Ana satış kuralı: EMA 23 ve EMA 50'nin aşağı kesilmesi
sellSignal = ta.crossunder(ema23, ema50)

// Long pozisyon stop seviyesi
longStopLoss = low < ema50 and close < ema50[1]

// Short pozisyon stop seviyesi
shortStopLoss = high > ema50 and close > ema50[1]

// Long pozisyon için tekrar giriş kuralı
longReEntry = high > ema50 and close > ema50 and close > ema50 and ema23 > ema50

// Short pozisyon için tekrar giriş kuralı
shortReEntry = low < ema50 and close < ema50 and close < ema50 and ema23 < ema50

// Long işlemde kar alma seviyesi (%60)
longTakeProfit = strategy.position_avg_price * 1.60

// Short işlemde kar alma seviyesi (%25)
shortTakeProfit = strategy.position_avg_price * 0.75

// Long işlem için yeniden giriş koşulu
longReEntryCondition = strategy.position_size <= 0 and longReEntry

// Short işlem için yeniden giriş koşulu
shortReEntryCondition = strategy.position_size >= 0 and shortReEntry

// Geriye dönük test için başlangıç tarihi (01.01.2022)
startDate = timestamp(2022, 01, 01, 00, 00)

if (time >= startDate)
    if (buySignal)
        strategy.entry("Buy", strategy.long)

    if (sellSignal)
        strategy.entry("Sell", strategy.short)

    if (strategy.position_size > 0 and (longStopLoss or close >= longTakeProfit))
        strategy.close("Buy")

    if (strategy.position_size < 0 and (shortStopLoss or close <= shortTakeProfit))
        strategy.close("Sell")

    if (longReEntryCondition)
        strategy.entry("Buy", strategy.long)

    if (shortReEntryCondition)
        strategy.entry("Sell", strategy.short)


Relationnée

Plus de