Stratégie de canal à moyenne mobile double avec suivi dynamique des tendances et système de gestion des risques

SMA MAC
Date de création: 2025-01-10 16:26:56 Dernière modification: 2025-01-10 16:26:56
Copier: 7 Nombre de clics: 374
1
Suivre
1617
Abonnés

Stratégie de canal à moyenne mobile double avec suivi dynamique des tendances et système de gestion des risques

Aperçu

Cette stratégie est un système de suivi de tendance dynamique basé sur un double canal de moyenne mobile, combiné à un mécanisme de gestion des risques. Cette stratégie utilise deux moyennes mobiles simples (SMA) pour construire un canal de trading, où le rail supérieur utilise la moyenne mobile calculée par le prix le plus élevé et le rail inférieur utilise la moyenne mobile calculée par le prix le plus bas. Le système utilise cinq prix de clôture consécutifs de la ligne K franchissant la piste supérieure comme signal d’entrée, et cinq prix de clôture consécutifs de la ligne K tombant en dessous de la piste inférieure ou reculant de 25 % par rapport au point le plus élevé comme signal de sortie, pour obtenir une tendance dynamique. suivi et contrôle des risques. .

Principe de stratégie

Le principe de base de la stratégie est de capturer les tendances des prix à travers le canal de la double moyenne mobile et d’établir un mécanisme d’entrée et de sortie strict :

  1. Mécanisme d’entrée : nécessite que le prix reste au-dessus de la trajectoire supérieure pendant cinq jours consécutifs pour assurer la continuité et l’efficacité de la tendance
  2. Mécanisme de sortie : divisé en deux niveaux
    • Sortie de divergence de tendance : lorsque le prix tombe en dessous de la trajectoire inférieure pendant cinq jours consécutifs, cela indique que la tendance pourrait s’inverser.
    • Stop loss : Lorsque le prix recule de 25 % par rapport au point le plus haut, le stop loss est déclenché pour éviter des pertes excessives
  3. Gestion des positions : ouvrir des positions à un ratio fixe de la valeur totale du compte pour obtenir une allocation efficace des fonds

Avantages stratégiques

  1. Stabilité du suivi de tendance : Filtrez les faux signaux de cassure en exigeant cinq jours consécutifs de confirmation de cassure
  2. Intégrité du contrôle des risques : Combinez la divergence des tendances et le mécanisme de stop loss pour créer une double protection
  3. Paramètres flexibles et ajustables : la période de moyenne mobile et le ratio stop loss peuvent être optimisés en fonction des différentes caractéristiques du marché
  4. Logique d’exécution claire : conditions d’entrée et de sortie claires, réduisant les interférences causées par un jugement subjectif
  5. Gestion scientifique des fonds : utilisez des positions proportionnelles aux comptes plutôt que des lots fixes pour mieux contrôler les risques

Risque stratégique

  1. Risque de marché volatil : de faux signaux sont facilement générés dans un marché latéral et volatil, ce qui conduit à des transactions fréquentes
  2. Risque de dérapage : sur les marchés en évolution rapide, le prix d’exécution du stop loss peut s’écarter considérablement des attentes.
  3. Dépendance des paramètres : les paramètres optimaux peuvent varier considérablement selon les environnements de marché
  4. Retard de tendance : En raison de l’utilisation de moyennes mobiles, il existe un certain décalage dans le point de retournement de la tendance
  5. Efficacité du fonds : Les conditions de détention sont relativement strictes et certaines opportunités de profit peuvent être manquées.

Orientation de l’optimisation de la stratégie

  1. Optimisation des paramètres dynamiques : Développer un système de paramètres adaptatif pour ajuster automatiquement la période de la moyenne mobile en fonction de la volatilité du marché
  2. Filtre d’environnement de marché : ajoutez un indicateur de force de tendance pour réduire automatiquement la fréquence des transactions sur les marchés volatils
  3. Confirmation sur plusieurs périodes : ajoutez un mécanisme de confirmation de tendance à plus long terme pour améliorer la fiabilité du signal
  4. Optimisation du stop loss : introduction d’un mécanisme de stop loss dynamique pour ajuster automatiquement le ratio de stop loss en fonction de la volatilité
  5. Optimisation de la gestion des positions : ajuster dynamiquement le ratio d’ouverture en fonction de la volatilité et du ratio de profits et pertes

Résumer

Cette stratégie construit un système de trading complet de suivi des tendances via un double canal de moyenne mobile, combiné à des mécanismes stricts de confirmation d’entrée et de double sortie, pour obtenir un suivi efficace des tendances et un contrôle efficace des risques. Les avantages de la stratégie sont une logique d’exécution claire et un contrôle parfait des risques, mais elle nécessite encore une optimisation des paramètres pour différents environnements de marché et peut être encore améliorée en ajoutant un filtrage de l’environnement de marché, une confirmation sur plusieurs périodes, etc. Dans l’ensemble, il s’agit d’une stratégie de trading quantitative dotée d’une structure complète et d’une logique rigoureuse, qui convient à une application dans un environnement de marché avec des tendances évidentes.

Code source de la stratégie
/*backtest
start: 2025-01-02 00:00:00
end: 2025-01-09 00:00:00
period: 10m
basePeriod: 10m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/

//@version=5
strategy("Moving Average Channel (MAC)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Parameters for Moving Averages
upperMALength = input.int(10, title="Upper MA Length")
lowerMALength = input.int(8, title="Lower MA Length")
stopLossPercent = input.float(25.0, title="Stop Loss (%)", minval=0.1) / 100

// Calculate Moving Averages
upperMA = ta.sma(high, upperMALength)
lowerMA = ta.sma(low, lowerMALength)

// Plot Moving Averages
plot(upperMA, color=color.red, title="Upper Moving Average")
plot(lowerMA, color=color.green, title="Lower Moving Average")

// Initialize variables
var int upperCounter = 0
var int lowerCounter = 0
var float entryPrice = na
var float highestPrice = na

// Update counters based on conditions
if (low <= upperMA)
    upperCounter := 0
else
    upperCounter += 1

if (high >= lowerMA)
    lowerCounter := 0
else
    lowerCounter += 1

// Entry condition: 5 consecutive bars above the Upper MA
if (upperCounter == 5 and strategy.position_size == 0)
    strategy.entry("Long", strategy.long)
    highestPrice := high  // Initialize highest price

// Update the highest price after entry
if (strategy.position_size > 0)
    highestPrice := na(highestPrice) ? high : math.max(highestPrice, high)

// Exit condition: 5 consecutive bars below the Lower MA
if (lowerCounter == 5 and strategy.position_size > 0)
    strategy.close("Long", comment="Exit: 5 bars below Lower MA")

// Stop-loss condition: Exit if market closes below 25% of the highest price since entry
stopLossCondition = low < highestPrice * (1 - stopLossPercent)
if (stopLossCondition and strategy.position_size > 0)
    strategy.close("Long", comment="Exit: Stop Loss")