Stratégie de suivi de tendance croisée de moyenne mobile

MA EMA SMA CROSSOVER
Date de création: 2025-02-24 10:15:28 Dernière modification: 2025-02-24 10:15:28
Copier: 0 Nombre de clics: 423
2
Suivre
319
Abonnés

Stratégie de suivi de tendance croisée de moyenne mobile Stratégie de suivi de tendance croisée de moyenne mobile

Aperçu

La stratégie est un système de négociation basé sur la croisée des moyennes mobiles, qui prend en charge les deux types de moyennes mobiles EMA et SMA et fournit des paramètres prédéfinis optimisés pour plusieurs périodes de temps telles que 1 heure, 4 heures, jour, jour et jour. Le système génère des signaux de négociation par la croisée des moyennes mobiles rapides et lentes et fournit un remplissage de zone de prix visualisé.

Principe de stratégie

Le cœur de la stratégie est d’identifier les changements de tendance potentiels en surveillant l’intersection des moyennes mobiles rapides et lentes. Des signaux de multiplication sont générés lorsque les moyennes mobiles rapides traversent à la hausse les moyennes mobiles lentes; des signaux de blanchiment sont générés lorsque les moyennes mobiles rapides traversent à la baisse les moyennes mobiles lentes.

Avantages stratégiques

  1. Science de l’optimisation paramétrique: fournit une combinaison de paramètres optimisés pour différentes périodes de temps en optimisant les données historiques
  2. Flexibilité: Prise en charge de paramètres personnalisés, longueur et type de moyennes mobiles peuvent être ajustés en fonction des conditions du marché
  3. Intuition visuelle: les tendances de la pluralité sont définies par le remplissage de couleurs, les signaux de trading sont clairement visibles
  4. Utilisation multi-périodes: paramètres spécialement optimisés pour différentes périodes
  5. Affichage complet des informations: affichage en temps réel des paramètres et des paramètres de la stratégie actuelle via le panneau d’informations

Risque stratégique

  1. Risque de retard: les moyennes mobiles sont essentiellement des indicateurs retardés qui peuvent être retardés par des fluctuations rapides du marché
  2. Non applicable pour les marchés de choc: les signaux de croisement fréquents peuvent entraîner des pertes continues en cas de choc horizontal
  3. Paramètres dépendants: bien que des paramètres d’optimisation soient fournis, ils peuvent nécessiter des ajustements en fonction des conditions réelles du marché
  4. Changement de l’environnement du marché: les paramètres optimisés en fonction des données historiques peuvent ne plus être valables en cas de changement de l’environnement du marché à l’avenir

Orientation de l’optimisation de la stratégie

  1. Ajout d’un filtre de tendance: des indicateurs de tendance tels que l’ADX peuvent être ajoutés pour exécuter des signaux de négociation uniquement lorsque la tendance est forte
  2. Introduction d’un ajustement de la volatilité: paramètres de la moyenne mobile modifiés en fonction de la dynamique de la volatilité du marché
  3. Optimisation du mécanisme d’arrêt de perte: position d’arrêt dynamique peut être combinée avec le réglage ATR
  4. Augmentation de la confirmation du volume des transactions: l’analyse du volume des transactions est ajoutée à la génération du signal, ce qui améliore la fiabilité du signal
  5. Développement de paramètres d’adaptation: recherche et développement d’un système de paramètres pouvant être automatiquement ajusté en fonction des conditions du marché

Résumer

Il s’agit d’une stratégie de croisement de moyennes mobiles rigoureusement optimisée et adaptée à plusieurs périodes de temps. La stratégie offre aux traders un outil de suivi de tendance fiable grâce à l’optimisation scientifique des paramètres et à des options de configuration flexibles.

Code source de la stratégie
/*backtest
start: 2024-07-12 00:00:00
end: 2025-02-22 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/

//@version=5
strategy("MA Crossover [ClémentCrypto]", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=20, initial_capital=10000,process_orders_on_close=true)

// Groupe pour le choix entre preset et personnalisé
usePreset = input.bool(title="Utiliser Preset", defval=true, group="Mode Selection")

// Inputs pour la stratégie
timeframeChoice = input.string(title="Timeframe Preset", defval="1H", options=["1H", "4H", "1D", "1W", "2W"], group="Preset Settings")
tradeDirection = input.string(title="Trading Direction", defval="Long Only", options=["Long Only", "Short Only", "Both Directions"], group="Strategy Settings")

// Paramètres personnalisés MA
customFastLength = input.int(title="Custom Fast MA Length", defval=23, minval=1, group="Custom MA Settings")
customSlowLength = input.int(title="Custom Slow MA Length", defval=395, minval=1, group="Custom MA Settings")
customMAType = input.string(title="Custom MA Type", defval="EMA", options=["SMA", "EMA"], group="Custom MA Settings")

// Paramètres MA optimisés pour chaque timeframe
var int fastLength = 0
var int slowLength = 0
var string maType = ""

if usePreset
    if timeframeChoice == "1H"
        fastLength := 23
        slowLength := 395
        maType := "EMA"
    else if timeframeChoice == "4H"
        fastLength := 41
        slowLength := 263
        maType := "SMA"
    else if timeframeChoice == "1D"
        fastLength := 8
        slowLength := 44
        maType := "SMA"
    else if timeframeChoice == "1W"
        fastLength := 32
        slowLength := 38
        maType := "SMA"
    else if timeframeChoice == "2W"
        fastLength := 17
        slowLength := 20
        maType := "SMA"
else
    fastLength := customFastLength
    slowLength := customSlowLength
    maType := customMAType

// Calcul des moyennes mobiles
fastMA = maType == "SMA" ? ta.sma(close, fastLength) : ta.ema(close, fastLength)
slowMA = maType == "SMA" ? ta.sma(close, slowLength) : ta.ema(close, slowLength)

// Conditions de trading simplifiées
longEntier = ta.crossover(fastMA, slowMA)
longExit = ta.crossunder(fastMA, slowMA)
shortEntier = ta.crossunder(fastMA, slowMA)
shortExit = ta.crossover(fastMA, slowMA)

// Définition des couleurs
var BULL_COLOR = color.new(#00ff9f, 20)
var BEAR_COLOR = color.new(#ff0062, 20)
var BULL_COLOR_LIGHT = color.new(#00ff9f, 90)
var BEAR_COLOR_LIGHT = color.new(#ff0062, 90)

// Couleurs des lignes MA
fastMAColor = fastMA > slowMA ? BULL_COLOR : BEAR_COLOR
slowMAColor = color.new(#FF6D00, 60)

// Gestion des positions
if tradeDirection == "Long Only"
    if (longEntier)
        strategy.entry("Long", strategy.long)
    if (longExit)
        strategy.close("Long")
        
else if tradeDirection == "Short Only"
    if (shortEntier)
        strategy.entry("Short", strategy.short)
    if (shortExit)
        strategy.close("Short")
        
else if tradeDirection == "Both Directions"
    if (longEntier)
        strategy.entry("Long", strategy.long)
    if (longExit)
        strategy.close("Long")
    if (shortEntier)
        strategy.entry("Short", strategy.short)
    if (shortExit)
        strategy.close("Short")

// Plots
var fastMAplot = plot(fastMA, "Fast MA", color=fastMAColor, linewidth=2)
var slowMAplot = plot(slowMA, "Slow MA", color=slowMAColor, linewidth=1)
fill(fastMAplot, slowMAplot, color=fastMA > slowMA ? BULL_COLOR_LIGHT : BEAR_COLOR_LIGHT)



// Barres colorées
barcolor(fastMA > slowMA ? color.new(BULL_COLOR, 90) : color.new(BEAR_COLOR, 90))