Stratégie de trading multicible à moyenne mobile exponentielle double

EMA SMA TP SL 移动平均线 止损 多目标策略 交叉信号
Date de création: 2025-08-21 09:01:39 Dernière modification: 2025-08-21 09:01:39
Copier: 0 Nombre de clics: 212
2
Suivre
319
Abonnés

Stratégie de trading multicible à moyenne mobile exponentielle double Stratégie de trading multicible à moyenne mobile exponentielle double

Aperçu

Une stratégie de trading à objectifs multiples basée sur des signaux de croisement des moyennes mobiles indicielles à court et à long terme (EMA) est un système de trading quantitatif. La stratégie utilise le croisement d’une EMA à 9 cycles et à 21 cycles comme signal d’entrée, tout en définissant jusqu’à 10 objectifs de profit et un point d’arrêt pour la gestion des risques et la maximisation des profits.

Principe de stratégie

Le principe central de cette stratégie est basé sur un système de croisement des moyennes mobiles indicielles, qui se concrétise comme suit:

  1. Calculez deux EMA: une EMA rapide de 9 cycles et une EMA lente de 21 cycles.
  2. Lorsque l’EMA rapide est traversée par l’EMA lente, un signal de multiplication est généré
  3. Un signal de vide est généré lorsque l’EMA rapide traverse l’EMA lente
  4. Après l’entrée, la stratégie calcule automatiquement 10 prix cibles en échelle (TP1-TP10) et des prix stop-loss en fonction du prix d’entrée
  5. La stratégie utilise les mêmes paramètres de pourcentage pour les positions à plusieurs têtes et à vide, mais dans le sens inverse
  6. Pour les multi-titres, le stop loss est placé à 0,5% en dessous du prix d’entrée, et le profit cible varie de 0,5% à 5,0% au-dessus du prix d’entrée.
  7. Pour les têtes creuses, le stop loss est placé à 0,5% au-dessus du prix d’entrée, et le profit cible varie de 0,5% à 5,0% au-dessous du prix d’entrée.
  8. Les stratégies de plafonnement se terminent lorsque des signaux de croisement inversés apparaissent.

La stratégie utilise une méthode de gestion du risque systématique, avec par défaut 10% du capital du compte pour chaque transaction, un capital initial de 100 000 et une interdiction des opérations de surtaxe.

Avantages stratégiques

  1. Un signal d’entrée simple et efficace: Le croisement EMA est un signal de négociation largement utilisé et vérifié, facile à comprendre et à mettre en œuvre. La configuration des paramètres du cycle 921 permet de mieux capturer les tendances à court et moyen terme.
  2. Gestion des bénéfices à plusieurs objectifs: définition de 10 objectifs de profit échelonnés, permettant aux traders de réaliser des bénéfices en lots à différents niveaux de prix, de bloquer une partie des bénéfices et de les prolonger le plus possible.
  3. Des contrôles rigoureux des risques: Chaque transaction est définie avec un stop-loss, limitant le pourcentage de pertes maximales pour une transaction, contrôlant efficacement le risque.
  4. Aide visuelle: La stratégie affiche clairement tous les signaux d’entrée, les points d’arrêt et les points de cible sur le graphique, ce qui aide les traders à comprendre intuitivement les conditions du marché.
  5. Capacité de négociation bidirectionnelleLes stratégies permettent d’exploiter les opportunités dans différents environnements de marché tout en soutenant le trading multi-opérations.
  6. Ajustabilité des paramètres: Tous les paramètres clés (y compris les cycles EMA, le stop loss ratio et les objectifs de profit) peuvent être personnalisés par l’entrée, ce qui augmente la flexibilité de la stratégie.
  7. Automatisation complèteL’exécution de la stratégie est entièrement automatisée, sans intervention humaine, de la reconnaissance des signaux à l’entrée, à la définition des objectifs de stop loss et de profit, et à la sortie.

Risque stratégique

  1. Risque de fausse percée: Le système de croisement EMA est susceptible de produire de faux signaux dans un marché en crise, ce qui peut entraîner des transactions fréquentes et des pertes. La stratégie ne dispose pas de filtres pour distinguer les signaux forts des faibles.
  2. Arrêt de perte partielleLa stratégie actuelle a un arrêt de perte par défaut de 0,5%, ce qui peut être trop serré dans les marchés ou les variétés plus volatiles et susceptibles d’être déclenchés par le bruit du marché.
  3. Dépendance à un seul indicateur: La stratégie repose uniquement sur la croisée des EMA comme signal d’entrée, sans confirmation en combinaison avec d’autres indicateurs techniques ou conditions de marché, ce qui augmente le risque de jugement erroné.
  4. Gestion des fonds fixe: 10% du capital du compte est utilisé à chaque transaction, sans ajustement dynamique en fonction de la volatilité du marché ou de l’intensité du signal, ce qui peut ne pas être suffisamment optimisé.
  5. Manque de reconnaissance du contexte du marché: La stratégie ne fait pas de distinction entre les marchés tendance et les marchés oscillante, mais génère toujours des signaux dans un environnement de marché qui ne convient pas au système croisé EMA.
  6. Une seule stratégie de sortie: Bien que plusieurs objectifs de profit aient été définis, la stratégie n’est en fait que d’être à plat sur le premier objectif (TP1) ou de s’en sortir à la croisée arrière, sans réaliser de véritables bénéfices en lots.

Pour atténuer ces risques, il est recommandé d’introduire des conditions de filtrage supplémentaires, telles que des indicateurs de force de tendance, et d’envisager d’ajuster les paramètres de stop-loss et de cible en fonction de la dynamique de la volatilité du marché.

Orientation de l’optimisation de la stratégie

  1. Ajouter un filtreIntroduction d’indicateurs techniques supplémentaires comme filtres, comme l’ADX (indice de tendance moyenne) pour confirmer la force de la tendance, ou l’indicateur relativement faible (indice de force relative) pour éviter de négocier dans des zones de survente.
  2. Défaillance dynamique: modifier le stop-loss à pourcentage fixe en stop-loss dynamique basé sur la volatilité du marché, par exemple en utilisant l’ATR (Average True Range) multiplié par un facteur pour définir la distance de stop-loss.
  3. Des bénéfices réellement multiples: modification du code de la stratégie, permettant de réaliser des plafonds partiels sur les différentes positions cibles, plutôt que des plafonds complets sur la seule première position cible. Cela nécessite de diviser chaque transaction en plusieurs positions plus petites.
  4. Des mécanismes de détection de tendances: Ajout d’une logique de reconnaissance de tendance, ouverture de positions uniquement lorsque la direction de la tendance est claire, évitant ainsi de négocier fréquemment dans des marchés en crise.
  5. Optimisation de la gestion des fondsLe ratio de fonds à chaque transaction est ajusté de manière dynamique en fonction de l’intensité du signal, de la volatilité du marché ou des retraits, au lieu d’être fixé à 10%.
  6. Ajout d’un filtre temporelLes investisseurs devraient éviter de négocier pendant les périodes de forte volatilité avant et après l’ouverture et la fermeture du marché, ou pendant les périodes de publication de données économiques importantes.
  7. Introduction du stop mobile: lorsque le prix se déplace dans la direction favorable d’une certaine distance, le point d’arrêt est déplacé vers le point d’équilibre des pertes et des pertes ou une position plus favorable, protégeant les gains.
  8. Augmentation de la protection contre la tendance: Ajout d’indicateurs de revers comme signal d’avertissement dans des conditions de marché extrêmes pour éviter de continuer à détenir des positions en cas de forte reprise du marché.

Grâce à ces optimisations, la robustesse et la rentabilité des stratégies peuvent être considérablement améliorées, et la fréquence des retraits et des transactions à perte réduite.

Résumer

La stratégie de négociation multi-objectifs en moyenne mobile à deux indices est un système de négociation quantitatif, structuré, logiquement simple, basé sur les signaux croisés classiques des EMA, et complété par une gestion des bénéfices et un arrêt-perte multi-objectifs. La stratégie est adaptée à la négociation de tendances à court et moyen terme et fonctionne mieux dans les marchés clairement tendance.

Bien que la conception de la stratégie soit relativement simple, elle contient les éléments centraux de la stratégie de négociation: les signaux d’entrée, les conditions d’exit, la gestion des arrêts de perte et les objectifs de profit. Les principaux avantages de la stratégie résident dans la clarté de l’opération, la facilité de compréhension et d’exécution, ainsi qu’un bon support visuel.

Cependant, la stratégie présente également des limites telles que la dépendance à un seul indicateur, le manque d’identification de l’environnement du marché et l’insuffisance de la flexibilité de la gestion des fonds. La stratégie a une grande marge d’optimisation en ajoutant des filtres de tendance, en optimisant les mécanismes d’arrêt des pertes, en réalisant de véritables bénéfices en lots et en améliorant les méthodes de gestion des fonds.

Pour les traders, cette stratégie peut servir de cadre de base pour un ajustement et une optimisation personnalisés en fonction des préférences de risque individuelles et des caractéristiques de la variété de transactions, afin d’obtenir de meilleures performances de négociation.

Code source de la stratégie
/*backtest
start: 2024-08-21 00:00:00
end: 2025-08-20 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_OKX","currency":"BNB_USDT","balance":5000}]
*/

//@version=5
strategy("9/21 EMA with 10 Targets + Stoploss", 
     overlay = true,
     initial_capital = 100000,
     default_qty_type = strategy.percent_of_equity,
     default_qty_value = 10,
     pyramiding = 0)

// === Inputs ===
emaFastLen = input.int(9, "Fast EMA Length")
emaSlowLen = input.int(21, "Slow EMA Length")
slPercent  = input.float(0.5, "Stoploss %", step=0.1)

// 10 Targets
tp1Percent = input.float(0.5, "Target 1 %", step=0.1)
tp2Percent = input.float(1.0, "Target 2 %", step=0.1)
tp3Percent = input.float(1.5, "Target 3 %", step=0.1)
tp4Percent = input.float(2.0, "Target 4 %", step=0.1)
tp5Percent = input.float(2.5, "Target 5 %", step=0.1)
tp6Percent = input.float(3.0, "Target 6 %", step=0.1)
tp7Percent = input.float(3.5, "Target 7 %", step=0.1)
tp8Percent = input.float(4.0, "Target 8 %", step=0.1)
tp9Percent = input.float(4.5, "Target 9 %", step=0.1)
tp10Percent = input.float(5.0, "Target 10 %", step=0.1)

// === EMA Calculation ===
emaFast = ta.ema(close, emaFastLen)
emaSlow = ta.ema(close, emaSlowLen)

// === Entry Conditions ===
longCond  = ta.crossover(emaFast, emaSlow)
shortCond = ta.crossunder(emaFast, emaSlow)

// === Entry ===
if (longCond and strategy.position_size <= 0)
    strategy.entry("BUY", strategy.long)

if (shortCond and strategy.position_size >= 0)
    strategy.entry("SELL", strategy.short)

// === Series Variables for Targets ===
var float tp1 = na
var float tp2 = na
var float tp3 = na
var float tp4 = na
var float tp5 = na
var float tp6 = na
var float tp7 = na
var float tp8 = na
var float tp9 = na
var float tp10 = na
var float stopLevel = na

// === Long Positions ===
if strategy.position_size > 0
    stopLevel := strategy.position_avg_price * (1 - slPercent/100)
    tp1 := strategy.position_avg_price * (1 + tp1Percent/100)
    tp2 := strategy.position_avg_price * (1 + tp2Percent/100)
    tp3 := strategy.position_avg_price * (1 + tp3Percent/100)
    tp4 := strategy.position_avg_price * (1 + tp4Percent/100)
    tp5 := strategy.position_avg_price * (1 + tp5Percent/100)
    tp6 := strategy.position_avg_price * (1 + tp6Percent/100)
    tp7 := strategy.position_avg_price * (1 + tp7Percent/100)
    tp8 := strategy.position_avg_price * (1 + tp8Percent/100)
    tp9 := strategy.position_avg_price * (1 + tp9Percent/100)
    tp10 := strategy.position_avg_price * (1 + tp10Percent/100)

    strategy.exit("Exit Long", "BUY", stop=stopLevel, limit=tp1)

// === Short Positions ===
if strategy.position_size < 0
    stopLevel := strategy.position_avg_price * (1 + slPercent/100)
    tp1 := strategy.position_avg_price * (1 - tp1Percent/100)
    tp2 := strategy.position_avg_price * (1 - tp2Percent/100)
    tp3 := strategy.position_avg_price * (1 - tp3Percent/100)
    tp4 := strategy.position_avg_price * (1 - tp4Percent/100)
    tp5 := strategy.position_avg_price * (1 - tp5Percent/100)
    tp6 := strategy.position_avg_price * (1 - tp6Percent/100)
    tp7 := strategy.position_avg_price * (1 - tp7Percent/100)
    tp8 := strategy.position_avg_price * (1 - tp8Percent/100)
    tp9 := strategy.position_avg_price * (1 - tp9Percent/100)
    tp10 := strategy.position_avg_price * (1 - tp10Percent/100)

    strategy.exit("Exit Short", "SELL", stop=stopLevel, limit=tp1)

// === Plotting ===
plot(emaFast, "EMA 9", color=color.yellow, linewidth=2)
plot(emaSlow, "EMA 21", color=color.orange, linewidth=2)

// Global plots (avoid local scope error)
plot(tp1,  "TP1",  color=color.new(color.green, 0))
plot(tp2,  "TP2",  color=color.new(color.green, 10))
plot(tp3,  "TP3",  color=color.new(color.green, 20))
plot(tp4,  "TP4",  color=color.new(color.green, 30))
plot(tp5,  "TP5",  color=color.new(color.green, 40))
plot(tp6,  "TP6",  color=color.new(color.green, 50))
plot(tp7,  "TP7",  color=color.new(color.green, 60))
plot(tp8,  "TP8",  color=color.new(color.green, 70))
plot(tp9,  "TP9",  color=color.new(color.green, 80))
plot(tp10, "TP10", color=color.new(color.green, 90))
plot(stopLevel, "Stoploss", color=color.red, linewidth=2)

// Entry Signals
plotshape(longCond, title="BUY Signal", style=shape.labelup, color=color.green, text="BUY")
plotshape(shortCond, title="SELL Signal", style=shape.labeldown, color=color.red, text="SELL")