Stratégie de négociation de paires multi-MA

Auteur:ChaoZhang est là., Date: 23 septembre 2023 à 15h50
Les étiquettes:

Résumé

Cette stratégie combine la double sélection des moyennes mobiles et la reconnaissance des modèles de prix pour former un mécanisme d'entrée plus complet visant à améliorer la qualité du signal.

La logique de la stratégie

La stratégie comprend les indicateurs et les règles suivants:

  1. Les 3 SMA jugent de la tendance globale.

  2. 2 Les AEM font des jugements directifs détaillés.

  3. SAR aide avec la tendance et l'élan.

  4. Les modèles de prix identifient les formations comme des signaux d'entrée.

  5. Le profit maximal est pris en compte dans la comptabilisation des bénéfices.

  6. La limite de la période de détention évite une expansion des pertes.

La combinaison de multiples indicateurs forme des signaux d'entrée et des mécanismes de sortie solides, équilibrant la rentabilité et le contrôle des risques pour une négociation stable.

Les avantages

Comparativement aux stratégies à indicateur unique, les avantages sont les suivants:

  1. Plusieurs indicateurs améliorent la précision.

  2. La reconnaissance des modèles de prix améliore le calendrier d'entrée.

  3. Le profit prend le contrôle et réalise le profit.

  4. La période de détention évite une expansion des pertes.

  5. Les SMA suivent la tendance.

  6. Les EMA améliorent la sensibilité.

  7. SAR vérifie la fiabilité de l'évasion.

  8. Dans l'ensemble, un bon rapport risque-récompense, robustesse.

  9. Les paramètres de réglage peuvent atteindre un alpha stable.

Les risques

Malgré les avantages, il convient de noter les risques suivants:

  1. Des indicateurs multiples augmentent la complexité.

  2. Le réglage des paramètres est un risque d'optimisation.

  3. L'efficacité de la reconnaissance des modèles de prix est incertaine.

  4. Les risques de profit manquent à la poursuite de la tendance.

  5. La période de détention limite le potentiel de profit.

  6. La stabilité et la rentabilité doivent être compromises.

  7. La robustesse des marchés multiples nécessite une validation.

  8. La surveillance continue de la robustesse du modèle est critique.

Amélioration

Sur la base de l'analyse, les améliorations peuvent inclure:

  1. Ajustez les paramètres pour la stabilité du retour.

  2. Incorporer l'apprentissage automatique pour le calendrier d'entrée.

  3. Optimisez le stop loss dynamique et profitez.

  4. Évaluer l'impact de la période de détention sur la courbe des actions.

  5. Tester la robustesse sur différents marchés.

  6. Ajouter des contrôles de robustesse des paramètres pour éviter le surajustement.

  7. Développer une gestion quantitative des risques.

  8. Valider en permanence l'efficacité de la stratégie.

Conclusion

En résumé, l'approche multi-indicateur forme un système de trading relativement robuste. Mais l'optimisation et la validation continues sont essentielles pour toute stratégie, en mettant l'accent sur la robustesse des paramètres pour l'adaptabilité du marché.


//@version=3
strategy("Free Strategy #08 (Combo of #01 and #02) (ES / SPY)", overlay=true)

// Inputs
Quantity = input(1, minval=1, title="Quantity")
SmaPeriod01 = input(3, minval=1, title="SMA Period 01")
SmaPeriod02 = input(8, minval=1, title="SMA Period 02")
SmaPeriod03 = input(10, minval=1, title="SMA Period 03")
EmaPeriod01 = input(5, minval=1, title="EMA Period 01")
EmaPeriod02 = input(3, minval=1, title="EMA Period 02")
MaxProfitCloses = input(5, minval=1, title="Max Profit Close")
MaxBars = input(10, minval=1, title="Max Total Bars")

// Misc Variables
src = close
BarsSinceEntry = 0
MaxProfitCount = 0
Sma01 = sma(close, SmaPeriod01)
Sma02 = sma(close, SmaPeriod02)
Sma03 = sma(close, SmaPeriod03)
Ema01 = ema(close, EmaPeriod01)
Ema02 = ema(close, EmaPeriod02)
OHLC = (open + high + low + close) / 4.0

// Conditions
Cond00 = strategy.position_size == 0
Cond01 = close < Sma03
Cond02 = close <= Sma01
Cond03 = close[1] > Sma01[1]
Cond04 = open > Ema01
Cond05 = Sma02 < Sma02[1]
Entry01 = Cond00 and Cond01 and Cond02 and Cond03 and Cond04 and Cond05

Cond06 = close < Ema02
Cond07 = open > OHLC
Cond08 = volume <= volume[1]
Cond09 = (close < min(open[1], close[1]) or close > max(open[1], close[1]))
Entry02 = Cond00 and Cond06 and Cond07 and Cond08 and Cond09

// Update Exit Variables
BarsSinceEntry := Cond00 ? 0 : nz(BarsSinceEntry[1]) + 1
MaxProfitCount := Cond00 ? 0 : (close > strategy.position_avg_price and BarsSinceEntry > 1) ? nz(MaxProfitCount[1]) + 1 : nz(MaxProfitCount[1])

// Entries
strategy.entry(id="L1", long=true, qty=Quantity, when=(Entry01 or Entry02))
 
// Exits
strategy.close("L1", (BarsSinceEntry - 1 >= MaxBars or MaxProfitCount >= MaxProfitCloses))

Plus de