Stratégie de stop loss dynamique de cassure de l'EMA

EMA ATR VOLUME BREAKOUT TRAILING_STOP
Date de création: 2025-08-26 11:50:41 Dernière modification: 2025-08-26 11:50:41
Copier: 0 Nombre de clics: 328
2
Suivre
319
Abonnés

Stratégie de stop loss dynamique de cassure de l’EMA Stratégie de stop loss dynamique de cassure de l’EMA

Une stratégie de Wu: la tendance à la triple assurance dépasse les barrières

Cette stratégie est comme une triple assurance pour vos transactions: d’abord, vous utilisez l’EMA200 pour déterminer la direction d’une tendance majeure, puis vous utilisez le volume de transactions pour confirmer la véracité d’une rupture, et enfin vous utilisez l’ATR pour protéger vos profits. En termes simples, c’est la combinaison parfaite de “viser la direction + confirmer le signal + protéger les fonds”.

Il s’agit d’une stratégie intelligente qui permet d’éviter les fausses ruptures lorsque le prix dépasse l’EMA200 et de vérifier si le volume de transaction est suffisamment important (défaut de 1,5 fois la moyenne).

️ Le mécanisme d’arrêt dynamique: le dieu protecteur qui “ grimpe les escaliers “

La partie la plus excitante est que le stop loss de cette stratégie n’est pas une valeur fixe pour le plateau, mais une protection dynamique qui va “grimper les escaliers”.

Le principe est simple.

  • Au moment de l’entrée: arrêt à 2 fois la distance ATR inférieure au prix d’entrée
  • En position: le stop loss suivra le plus bas de 20 cycles
  • En début de journée, le prix a dépassé le seuil de rupture et a été à zéro.

C’est un peu comme si vous montiez une échelle, chaque étage de la chaîne de sécurité va vers le haut, et jamais vers le bas ! Cela protège les profits et donne suffisamment d’espace à la tendance.

Confirmation de la livraison de plutonium: l’arme centrale du guide pour éviter les puits

Le plus gros problème avec de nombreuses stratégies de percée est la fausse percée, comme dans l’histoire de “Le loup est arrivé”. Cette stratégie résout ce problème en confirmant la transaction:

Le volume de transactions doit être supérieur à 1,5 fois la moyenne sur 20 jours.Imaginez qu’un message diffusé par une poignée de personnes puisse être faux, mais qu’une ville entière en parle, et que cela mérite d’être pris en compte !

Cette conception vous aide à filtrer les fausses avancées de “faux discours” et à ne saisir que les tendances qui sont vraiment financées.

Les applications de la guerre: ce que cette stratégie peut vous apporter

Convient à un public

  • Les investisseurs qui veulent suivre les tendances à moyen et long terme
  • La prudence de ceux qui craignent une fausse percée
  • Les rationalistes qui veulent une protection systématique contre les dommages

Les problèmes fondamentaux résolus

  1. La confusionL’EMA200 vous aide à juger les grandes tendances
  2. La fausse percée est gênanteLe trafic est confirmé, le bruit est filtré
  3. Le défi de la préventionLe système ATR dynamique est à la fois protecteur et flexible.
  4. Le commerce des émotionsL’expérience a été faite par un groupe d’étudiants de l’Université de Montréal.

N’oubliez pas que la plus grande valeur de cette stratégie n’est pas de vous enrichir du jour au lendemain, mais de vous aider à vous maintenir en bonne santé dans un marché en tendance tout en maximisant la sécurité de vos fonds. C’est comme si votre transaction était équipée d’un système de navigation GPS + d’un casque de sécurité + d’une protection contre les chocs !

Code source de la stratégie
/*backtest
start: 2024-08-26 00:00:00
end: 2025-08-24 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("EMA Break + Stop ATR", overlay = true)
// =============================================================================
// STRATEGY PARAMETERS
// =============================================================================
// User inputs for strategy customization
shortPeriod = input.int(20, title = "Stop Period", minval = 1, maxval = 100, tooltip = "Period for lowest low calculation")
atrPeriod = 1  // ATR period always set to 1
initialStopLoss = 0.0  // Initial stop loss always set to 0 (auto based on ATR)
// Confirmation indicator settings
useVolumeConfirmation = input.bool(true, title = "Use Volume Confirmation", tooltip = "Require volume above average for breakout confirmation")
volumeMultiplier = input.float(1.5, title = "Volume Multiplier", minval = 1.0, maxval = 5.0, step = 0.1, tooltip = "Volume must be this times above average")
// Strategy variables
var float STOP_LOSS = 0.0     // Dynamic stop loss value
var float TRAILING_STOP = na   // Trailing stop based on lowest low
// =============================================================================
// TECHNICAL INDICATORS
// =============================================================================
// Calculate True Range and its Simple Moving Average
trueRange = ta.tr(true)
smaTrueRange = ta.sma(trueRange, atrPeriod)
// Calculate 200-period Exponential Moving Average
ema200 = ta.ema(close, 200)
// Calculate lowest low over the short period
lowestLow = ta.lowest(input(low), shortPeriod)
// Calculate potential stop loss level (always available)
potentialStopLoss = close - 2 * smaTrueRange
// Volume confirmation for breakout validation
volumeSMA = ta.sma(volume, 20)  // 20-period average volume
isVolumeConfirmed = not useVolumeConfirmation or volume > volumeSMA * volumeMultiplier
// =============================================================================
// STOP LOSS MANAGEMENT
// =============================================================================
// Update trailing stop based on lowest low (always, not just when in position)
if na(TRAILING_STOP) or lowestLow > TRAILING_STOP
    TRAILING_STOP := lowestLow
// Update stop loss if we have an open position and new lowest low is higher
if (strategy.position_size > 0) and (STOP_LOSS < lowestLow)
    strategy.cancel("buy_stop")
    STOP_LOSS := lowestLow
// Soft stop loss - exit only when close is below stop level
if (strategy.position_size > 0) and (close < STOP_LOSS)
    strategy.close("buy", comment = "Soft Stop Loss")
    alert("Position closed: Soft Stop Loss triggered at " + str.tostring(close), alert.freq_once_per_bar)
// =============================================================================
// ENTRY CONDITIONS
// =============================================================================
// Enhanced entry signal with volume confirmation to avoid false breakouts
isEntrySignal = ta.crossover(close, ema200) and (strategy.position_size == 0) and isVolumeConfirmed
if isEntrySignal
    // Cancel any pending orders
    strategy.cancel("buy")
    strategy.cancel("sell")
    // Enter long at market on crossover
    strategy.entry("buy", strategy.long)
    // Set initial stop loss (2 * ATR below close, or use custom value if specified)
    if initialStopLoss > 0
        STOP_LOSS := initialStopLoss
    else
        STOP_LOSS := close - 2 * smaTrueRange
    // Alert for position opened
    alert("Position opened: Long entry at " + str.tostring(close) + " with stop loss at " + str.tostring(STOP_LOSS), alert.freq_once_per_bar)
// =============================================================================
// PLOTTING
// =============================================================================
// Plot EMA 200
plot(ema200, color = color.blue, title = "EMA 200", linewidth = 2)
// Plot Stop Loss
plot(strategy.position_size > 0 ? STOP_LOSS : lowestLow, color = color.red, title = "Stop Loss", linewidth = 2)
// Plot confirmation signals
plotshape(isEntrySignal, title="Confirmed Breakout", location=location.belowbar,
          color=color.green, style=shape.triangleup, size=size.normal)
// Plot volume confirmation (only if enabled)
bgcolor(useVolumeConfirmation and isVolumeConfirmed and ta.crossover(close, ema200) ? color.new(color.green, 90) : na, title="Volume Confirmed")