Stratégie de suivi de tendance de cassure à trois lignes combinée à un filtrage dynamique EMA et à un système de gestion des risques ATR

EMA ATR 3LS
Date de création: 2025-02-18 15:30:08 Dernière modification: 2025-02-18 15:30:08
Copier: 1 Nombre de clics: 353
1
Suivre
1617
Abonnés

Stratégie de suivi de tendance de cassure à trois lignes combinée à un filtrage dynamique EMA et à un système de gestion des risques ATR

Aperçu

Cette stratégie est un système de trading de suivi de tendances basé sur les formes de rupture de trois lignes de l’analyse technique japonaise. La gestion dynamique des risques est améliorée par la combinaison d’une moyenne mobile indicielle (EMA) en tant que filtre de tendance et d’un indicateur d’amplitude d’onde réelle (ATR), ce qui améliore la fiabilité du modèle traditionnel de rupture de trois lignes. La stratégie est capable non seulement de capturer les points de rupture de tendance du marché, mais également de contrôler efficacement les risques et convient aux transactions de tendance à moyen et long terme.

Principe de stratégie

La logique centrale de la stratégie est basée sur les éléments clés suivants: d’abord, identifier la forme de rupture de trois lignes, c’est-à-dire qu’une plus grande corde de déglutition inverse apparaît après trois lignes consécutives de la même couleur. Deuxièmement, utiliser l’EMA comme filtre de tendance, ne considérant le signal plus que lorsque le prix est au-dessus de l’EMA et le signal vide lorsque le prix est en dessous de l’EMA. Enfin, utiliser l’indicateur ATR pour définir dynamiquement la position de stop-loss, en particulier le stop-loss est réglé sur 2 fois l’ATR et le stop-loss sur 1 fois l’ATR.

Avantages stratégiques

  1. La combinaison de la confirmation de tendance directionnelle et de l’identification des formes de retournement améliore la fiabilité des signaux de négociation
  2. Le réglage stop-loss est dynamique et s’adapte à la volatilité du marché.
  3. Une logique stratégique claire, des paramètres réglables et une optimisation facile en fonction des différentes caractéristiques du marché
  4. Les filtres EMA réduisent considérablement les faux signaux et améliorent la stabilité de la stratégie
  5. Système complet de gestion des risques, comprenant la gestion des fonds et les mécanismes de prévention des pertes

Risque stratégique

  1. Faux signaux fréquents qui peuvent se produire dans un marché en crise, entraînant des arrêts de perte continus
  2. L’EMA, en tant qu’indicateur de retard, peut ne pas réagir suffisamment rapidement en cas de reprise rapide
  3. Les paramètres ATR de stop-loss avec un multiplicateur fixe peuvent ne pas être adaptés à tous les environnements de marché
  4. La stratégie dépend d’une direction de tendance claire et peut être moins performante en période sans tendance
  5. La précision de l’heure d’entrée est plus influencée par la sélection de la période de la ligne K.

Orientation de l’optimisation de la stratégie

  1. Introduction d’indicateurs de débit comme confirmation auxiliaire pour améliorer la fiabilité du signal
  2. Adaptation des paramètres EMA en fonction des différentes dynamiques du cycle du marché, afin d’améliorer l’adaptabilité
  3. Augmentation des filtres d’intensité de tendance, tels que l’indicateur ADX, pour réduire les faux signaux dans les marchés survoltés
  4. Optimiser le multiplicateur de stop-loss, en tenant compte de l’ajustement dynamique en fonction de la volatilité
  5. Ajout d’un mécanisme d’identification des environnements de marché, avec différents paramètres de réglage dans différents états de marché

Résumer

Il s’agit d’un système de stratégie qui combine la théorie classique de l’analyse technique et la philosophie moderne du trading quantitatif. Il s’agit d’un système de négociation relativement complet qui combine les formes traditionnelles de rupture en trois lignes avec le suivi des tendances et la gestion des risques.

Code source de la stratégie
/*backtest
start: 2025-01-18 00:00:00
end: 2025-02-17 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// Copyright ...
// Based on the TMA Overlay by Arty, converted to a simple strategy example.
// Pine Script v5

//@version=5
strategy(title='3 Line Strike [TTF] - Strategy with ATR and EMA Filter',
     shorttitle='3LS Strategy [TTF]',
     overlay=true,
     initial_capital=100000,
     default_qty_type=strategy.percent_of_equity,
     default_qty_value=100,
     pyramiding=0)

// -----------------------------------------------------------------------------
//                               INPUTS
// -----------------------------------------------------------------------------

// ATR and EMA Inputs
atrLength = input.int(title='ATR Length', defval=14, group='ATR & EMA')
emaLength = input.int(title='EMA Length', defval=200, group='ATR & EMA')

// ### 3 Line Strike
showBear3LS = input.bool(title='Show Bearish 3 Line Strike', defval=true, group='3 Line Strike',
     tooltip="Bearish 3 Line Strike (3LS-Bear) = 3 zelené sviečky, potom veľká červená sviečka (engulfing).")
showBull3LS = input.bool(title='Show Bullish 3 Line Strike', defval=true, group='3 Line Strike',
     tooltip="Bullish 3 Line Strike (3LS-Bull) = 3 červené sviečky, potom veľká zelená sviečka (engulfing).")

// -----------------------------------------------------------------------------
//                          CALCULATIONS
// -----------------------------------------------------------------------------

// Calculate ATR
atr = ta.atr(atrLength)

// Calculate EMA
ema = ta.ema(close, emaLength)

// Helper Functions
getCandleColorIndex(barIndex) =>
    int ret = na
    if (close[barIndex] > open[barIndex])
        ret := 1
    else if (close[barIndex] < open[barIndex])
        ret := -1
    else
        ret := 0
    ret

isEngulfing(checkBearish) =>
    sizePrevCandle = close[1] - open[1]
    sizeCurrentCandle = close - open
    isCurrentLargerThanPrevious = math.abs(sizeCurrentCandle) > math.abs(sizePrevCandle)

    if checkBearish
        isGreenToRed = (getCandleColorIndex(0) < 0) and (getCandleColorIndex(1) > 0)
        isCurrentLargerThanPrevious and isGreenToRed
    else
        isRedToGreen = (getCandleColorIndex(0) > 0) and (getCandleColorIndex(1) < 0)
        isCurrentLargerThanPrevious and isRedToGreen

isBearishEngulfing() => isEngulfing(true)
isBullishEngulfing() => isEngulfing(false)

is3LSBear() =>
    is3LineSetup = (getCandleColorIndex(1) > 0) and (getCandleColorIndex(2) > 0) and (getCandleColorIndex(3) > 0)
    is3LineSetup and isBearishEngulfing()

is3LSBull() =>
    is3LineSetup = (getCandleColorIndex(1) < 0) and (getCandleColorIndex(2) < 0) and (getCandleColorIndex(3) < 0)
    is3LineSetup and isBullishEngulfing()

// Signals
is3LSBearSig = is3LSBear() and close < ema
is3LSBullSig = is3LSBull() and close > ema

// Take Profit and Stop Loss
longTP = close + 2 * atr
longSL = close - 1 * atr
shortTP = close - 2 * atr
shortSL = close + 1 * atr

// -----------------------------------------------------------------------------
//                          STRATEGY ENTRY PRÍKAZY
// -----------------------------------------------------------------------------
if (showBull3LS and is3LSBullSig)
    strategy.entry("3LS_Bull", strategy.long, comment="3LS Bullish")
    strategy.exit("Exit Bull", from_entry="3LS_Bull", limit=longTP, stop=longSL)

if (showBear3LS and is3LSBearSig)
    strategy.entry("3LS_Bear", strategy.short, comment="3LS Bearish")
    strategy.exit("Exit Bear", from_entry="3LS_Bear", limit=shortTP, stop=shortSL)