Stratégie de trading Momentum avec rupture de tendance multiple

EMA ATR VOLUME SMA BREAKOUT Consolidation
Date de création: 2025-02-20 13:14:39 Dernière modification: 2025-02-20 14:53:56
Copier: 0 Nombre de clics: 84
2
Suivre
37
Abonnés

Stratégie de trading Momentum avec rupture de tendance multiple Stratégie de trading Momentum avec rupture de tendance multiple

Aperçu

La stratégie est un système de suivi de tendance combinant plusieurs indicateurs, principalement pour capturer les opportunités de tendance du marché en identifiant les ruptures de prix, la confirmation du volume de transactions et la combinaison du système de la ligne de parité. La stratégie détermine les signaux de négociation en surveillant les ruptures de prix sur les hauts / bas récents, l’augmentation significative du volume de transactions et l’arrangement des moyennes mobiles multi-indicateurs (EMA).

Principe de stratégie

La logique centrale de la stratégie repose sur les éléments clés suivants:

  1. Système de rupture des prix: surveillance des ruptures des prix sur les hauts/bas des 20 derniers cycles
  2. Confirmation du volume des transactions: le volume des transactions au moment de la rupture doit être au moins deux fois supérieur à la moyenne des transactions des 20 derniers cycles
  3. Système de ligne moyenne: un système de confirmation de tendance construit à l’aide d’un EMA de 30/50/200
  4. Plus de conditions: prix atteint un nouveau sommet, le volume de transactions augmente, le prix est à 200 EMA, la moyenne à court terme est supérieure à la moyenne à moyen terme et la moyenne à moyen terme est supérieure à la moyenne à long terme
  5. Les conditions d’inscription sont les suivantes:
    • Défaillance traditionnelle: prix atteint un nouveau plus bas, volume de transactions augmenté, alignement de la ligne moyenne à vide et inclinaison vers le bas de l’EMA 200
    • Réglage étroit: le prix forme un réglage étroit au-dessous de la moyenne à moyen terme, avec un réglage de 0,5 fois moins que l’ATR

Avantages stratégiques

  1. Mécanisme de triple confirmation: amélioration de la fiabilité du signal grâce à la triple confirmation de la rupture de prix, du volume de transaction et de la ligne moyenne
  2. Mécanisme de prise de position flexible: offre deux modes d’entrée de prise de position indépendants pour augmenter les opportunités de négociation
  3. Adaptabilité: définition d’un étroit regroupement par l’ATR, permettant aux stratégies de s’adapter à différents environnements de fluctuation du marché
  4. Contrôle des risques: utilisation de 200 EMA comme référence de stop-loss pour un mécanisme de sortie clair
  5. Ajustabilité des paramètres: les paramètres clés peuvent être optimisés en fonction des caractéristiques du marché

Risque stratégique

  1. Risque de fausse percée: le marché risque de faire une fausse percée et de donner de faux signaux
  2. Risque de glissement: un risque de glissement plus important au moment de la rupture de l’augmentation des volumes
  3. Risque de renversement de tendance: dans un marché en forte tendance, l’utilisation d’un stop loss moyen peut entraîner une sortie prématurée
  4. Sensitivité des paramètres: la performance de la stratégie est sensible aux paramètres et nécessite une optimisation prudente
  5. La dépendance aux conditions du marché: des faux signaux fréquents peuvent être générés dans les marchés en crise

Orientation de l’optimisation de la stratégie

  1. Introduction de filtres de force de tendance: des indicateurs de force de tendance tels que l’ADX peuvent être ajoutés pour filtrer les signaux dans un environnement de tendance faible
  2. Optimisation des mécanismes d’arrêt: l’introduction d’un arrêt dynamique basé sur l’ATR peut améliorer la flexibilité de l’arrêt
  3. Amélioration de la gestion des positions: ajustement de la taille des positions en fonction de la force de rupture et de la dynamique de la volatilité du marché
  4. Ajout de filtres horaires: ajout de filtres horaires pour éviter les heures d’ouverture et de clôture les plus volatiles
  5. Introduction de la classification des environnements de marché: paramètres de stratégie qui s’adaptent dynamiquement en fonction des différentes conditions du marché (trend / choc)

Résumer

La stratégie de trading multi-trend breakout momentum est un système de suivi de tendance intégré qui offre des opportunités de trading flexibles en utilisant la combinaison de plusieurs indicateurs techniques tout en garantissant la fiabilité du signal. L’innovation de la stratégie réside dans la combinaison des méthodes traditionnelles de trading de rupture et de nouveaux mécanismes d’identification de rangées étroites, ce qui lui permet de s’adapter à différents environnements de marché. Bien qu’il y ait un certain risque, la stratégie est susceptible d’obtenir une performance stable dans un marché tendanciel grâce à une optimisation des paramètres et à des mesures de gestion des risques raisonnables.

Code source de la stratégie
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Breakout Strategy (Long & Short) + Slope of 200 EMA", overlay=true)

// -------------------
// 1. Settings
// -------------------
breakout_candles = input.int(20, title="Number of Candles for Breakout")
range_candles    = input.int(10, title="Number of Candles for Previous Range")

ema_long_period   = input.int(200, title="Long EMA Period")
ema_medium_period = input.int(50,  title="Medium EMA Period")
ema_short_period  = input.int(30,  title="Short EMA Period")

// Checkbox to allow/disallow short positions
allowShort = input.bool(true, title="Allow Short Positions")

// Inputs for the new Narrow Consolidation Short setup
consolidationBars     = input.int(10,   "Consolidation Bars",   minval=1)
narrowThreshInAtr     = input.float(0.5,"Narrowness (ATR Mult.)",minval=0.0)
atrLength             = input.int(14,   "ATR Length for Range")

// -------------------
// 2. Calculations
// -------------------
breakout_up   = close > ta.highest(high, breakout_candles)[1]
breakout_down = close < ta.lowest(low,  breakout_candles)[1]

prev_range_high = ta.highest(high, range_candles)[1]
prev_range_low  = ta.lowest(low,  range_candles)[1]

ema_long   = ta.ema(close, ema_long_period)
ema_medium = ta.ema(close, ema_medium_period)
ema_short  = ta.ema(close, ema_short_period)

average_vol      = ta.sma(volume, breakout_candles)
volume_condition = volume > 2 * average_vol

// 200 EMA sloping down?
ema_long_slope_down = ema_long < ema_long[1]

// For the Narrow Consolidation Short
rangeHigh   = ta.highest(high, consolidationBars)
rangeLow    = ta.lowest(low,  consolidationBars)
rangeSize   = rangeHigh - rangeLow

atrValue    = ta.atr(atrLength)

// Condition: Price range is "narrow" if it's less than (ATR * threshold)
narrowConsolidation = rangeSize < (atrValue * narrowThreshInAtr)

// Condition: All bars under Medium EMA if the highest difference (high - ema_medium) in last N bars is < 0
allBelowMedium = ta.highest(high - ema_medium, consolidationBars) < 0

// -------------------
// 3. Long Entry
// -------------------
breakout_candle_confirmed_long = ta.barssince(breakout_up) <= 3

long_condition = breakout_candle_confirmed_long
     and volume_condition
     and close > prev_range_high
     and close > ema_long
     and ema_short > ema_medium
     and ema_medium > ema_long
     and strategy.opentrades == 0

if long_condition
    strategy.entry("Long", strategy.long)

// -------------------
// 4. Short Entries
// -------------------

// (A) Original breakout-based short logic
breakout_candle_confirmed_short = ta.barssince(breakout_down) <= 3
short_condition_breakout = breakout_candle_confirmed_short
     and volume_condition
     and close < prev_range_low
     and close < ema_long
     and ema_short < ema_medium
     and ema_medium < ema_long
     and ema_long_slope_down
     and strategy.opentrades == 0

// (B) NEW: Narrow Consolidation Short
short_condition_consolidation = narrowConsolidation
     and allBelowMedium
     and strategy.opentrades == 0

// Combine them: if either short scenario is valid, go short
short_condition = (short_condition_breakout or short_condition_consolidation) and allowShort

if short_condition
    // Use a different order ID if you want to distinguish them
    // but "Short" is fine for a single position
    strategy.entry("Short", strategy.short)

// -------------------
// 5. Exits
// -------------------
if strategy.position_size > 0 and close < ema_long
    strategy.close("Long", qty_percent=100)

if strategy.position_size < 0 and close > ema_long
    strategy.close("Short", qty_percent=100)

// ======================================================================
// 5. ADDITIONAL PARTIAL EXITS / STOPS
// ======================================================================
// You can add partial exits for shorts or longs similarly.
// For example:
// if strategy.position_size < 0 and close > stop_level_for_short
//     strategy.close("Short", qty_percent=50)