
La stratégie d’arrêt partiel de confirmation de la dynamique croisée des EMAs est une stratégie de négociation quantitative avancée qui combine les signaux croisés des EMAs, la confirmation de la dynamique et l’analyse de la structure du marché. La stratégie accorde une attention particulière à la sécurité des transactions et protège les capitaux d’investissement grâce à un mécanisme d’arrêt partiel innovant. Son concept de conception central est d’attendre que les croisements EMA forment la direction de la tendance initiale, puis de rechercher le premier signal de dynamique de “continuation de la tendance” comme point d’entrée, tout en utilisant la destruction de la structure du marché comme condition de déclenchement de l’arrêt partiel des pertes, afin de pouvoir contrôler efficacement les risques tout en conservant un potentiel de hausse.
La stratégie fonctionne sur la base d’un mécanisme de confirmation à plusieurs niveaux:
Identifier les tendances: Utilisez un croisement de l’EMA rapide ((8 cycles) et l’EMA lente ((21 cycles) pour déterminer la direction de la tendance globale. Lorsqu’une 8EMA traverse une 21EMA, elle est identifiée comme une tendance à la hausse; lorsqu’une 8EMA traverse une 21EMA, elle est identifiée comme une tendance à la baisse.
Signaux d’entrée: la stratégie consiste à ne pas entrer immédiatement dans la zone d’intersection de l’EMA initiale, mais à attendre le signal de “prolongation de la première tendance”.
Gestion des risquesLa stratégie introduit un mécanisme de stop-loss partiel basé sur une analyse de la structure du marché:
Stratégie de sortieLe signal de sortie définitif est le croisement de l’EMA avec le marché baissier, c’est-à-dire le passage de l’EMA à 21 sous 8 EMA, auquel cas le plafonnement est effectué pour toutes les positions restantes.
La stratégie utilise des variables de gestion de l’état pour suivre l’état des transactions, le type de signaux déclenchés et les points de conversion de la structure du marché au cours de l’exécution, afin d’assurer la cohérence et l’exactitude de l’exécution logique.
Une analyse approfondie du code de la stratégie permet de résumer les avantages notables suivants:
Mécanisme de confirmation multiple: Le risque de fausses ruptures et de faux signaux est considérablement réduit en combinant des signaux de croisement EMA, de dépréciation de la dynamique et de continuation de la tendance. Cette conception de filtrage multicouche améliore considérablement la qualité et la fiabilité des transactions.
Une gestion de fonds intelligenteLe point fort de cette stratégie est le mécanisme de stop partiel (ou placement à 50%), qui permet aux traders de protéger une partie de leurs profits en cas de détérioration de la structure du marché, tout en conservant des positions restantes pour capturer une éventuelle reprise de la tendance, ce qui permet d’équilibrer le risque et le rendement.
Adaptation de la structure du marchéEn suivant de manière dynamique la formation des hauts et des bas, la stratégie est capable d’identifier les changements dans la structure du marché, ce qui lui permet de fonctionner de manière stable dans différents environnements de marché.
Une conception paramétrique flexible: La stratégie offre plusieurs paramètres réglables, y compris la longueur de l’EMA, le multiplicateur de la sensibilité et le réglage de la rétrocession de l’axe, permettant aux traders d’optimiser en fonction des différentes conditions de marché et des préférences de risque personnelles.
Le principe du respect des tendancesLa stratégie a été conçue selon le principe du “coup en cours”, en ne faisant plus que dans une tendance à la hausse confirmée, évitant ainsi les risques élevés liés aux transactions à la baisse.
Bien que cette stratégie soit bien conçue, elle présente des risques et des limites potentiels:
Risques liés à une admission tardive: En attendant le signal de “ première tendance continue “, la stratégie risque de rater une partie de la hausse au début de la tendance, ce qui peut entraîner une hausse du prix d’entrée dans un cas de rupture rapide.
Des erreurs de structure de marchéDans un environnement très volatile, la formation des hauts et des bas peut ne pas être assez claire, ce qui conduit à de faux jugements de la structure du marché et à des pertes partielles inutiles.
Paramètre SensibilitéLa performance de la stratégie dépend fortement de paramètres tels que la longueur EMA, le multiplicateur de sensibilité ATR, etc. Une configuration inappropriée des paramètres peut entraîner une sur-échange ou un signal manqué.
Après le stop loss, il est de nouveau absent.: Lorsque la stratégie n’a pas de mécanisme de réentrée clairement défini après le déclenchement d’un arrêt partiel, il est possible de manquer une occasion de reprise après la reprise de la tendance.
L’analyse du code permet d’optimiser cette stratégie dans les directions suivantes:
Ajustement des paramètres dynamiques: La longueur et le coefficient de sensibilité des EMA actuels sont fixes, il est possible d’envisager d’ajuster automatiquement ces paramètres en fonction de la volatilité du marché. Par exemple, utiliser un coefficient de sensibilité plus petit dans un environnement à faible volatilité et un coefficient de sensibilité plus élevé dans un environnement à forte volatilité. Cela permet de mieux adapter la stratégie aux différentes conditions du marché.
Augmentation des scores de structure de marché quantifiéeL’analyse de la structure du marché est relativement simple, mais il est possible de développer des systèmes de notation de la structure du marché plus complexes, en tenant compte de la position relative, de la vitesse et de l’ampleur de la formation de plusieurs hauts et de plusieurs bas, afin de juger plus précisément de l’intensité de la tendance et de la reprise potentielle.
Confirmation du volume intégré: les stratégies actuelles sont basées uniquement sur l’action des prix et peuvent ajouter l’analyse du volume des transactions comme facteur de confirmation supplémentaire. Par exemple, demander une augmentation du volume des transactions lors du déclenchement d’un signal d’achat ou un volume des transactions amplifié comme signal d’avertissement plus fort lors d’une perturbation de la structure du marché.
Optimisation des stratégies de gestion après coupure partielleLe projet de loi sur l’épargne-retraite a été adopté par le Parlement européen et le Conseil de l’Europe.
Ajout d’une analyse de plusieurs périodesL’intégration d’analyses de tendances sur des périodes plus longues permet d’améliorer la stabilité de la stratégie. Par exemple, il est permis d’effectuer des transactions supplémentaires sur des périodes plus courtes, uniquement lorsque le cours du soleil est à la hausse, ce qui réduit le risque de trading contre une tendance majeure.
La stratégie de confirmation partielle d’arrêt de la dynamique croisée de l’EMA est un système de négociation quantitatif avancé combinant l’analyse technique et la gestion des risques. Son avantage central réside dans un mécanisme de confirmation à plusieurs niveaux et une conception de blocage partiel innovante, capable de contrôler efficacement les risques tout en capturant la tendance. En attendant le signal de “la première continuation de la tendance” pour entrer en jeu, la stratégie réduit considérablement la possibilité de fausses transactions de rupture, tandis que la suspension partielle basée sur la structure du marché offre un mécanisme de protection des fonds flexible.
Cette stratégie est particulièrement adaptée aux environnements de marché modérés et tendancieux et présente une grande valeur de référence pour les traders quantifiés qui souhaitent introduire des contrôles de risque plus précis dans les transactions tendancieuses. Il reste beaucoup de place pour le développement et l’amélioration de cette stratégie grâce à une optimisation supplémentaire des méthodes d’analyse de la structure du marché, à l’ajustement des paramètres dynamiques et à l’intégration de plusieurs cadres temporels.
En fin de compte, la réussite de la stratégie nécessite une compréhension approfondie du marché et la capacité du trader à ajuster les paramètres de manière appropriée en fonction des différentes conditions du marché, tout en préservant la logique centrale de la stratégie et en améliorant son adaptabilité et sa stabilité.
/*backtest
start: 2024-06-30 00:00:00
end: 2025-06-28 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT","balance":50000000}]
*/
//@version=5
// This strategy buys on the 'First Continuation' signal and adds a
// partial stop-loss that triggers on a lower-low and lower-high market structure break.
// This version corrects the 'strategy.close' argument error.
strategy("First Continuation Strategy w/ Partial SL (Corrected)",
overlay=true,
default_qty_type=strategy.percent_of_equity,
default_qty_value=10,
commission_type=strategy.commission.percent,
commission_value=0.1)
// --- INPUTS ---
emaLength = input.int(21, "Slow EMA Length")
shortEmaLength = input.int(8, "Fast EMA Length")
sensitivityMultiplier = input.float(1.5, title="Sensitivity Multiplier")
pivotLeft = input.int(5, title="Pivot Lookback Left")
pivotRight = input.int(5, title="Pivot Lookback Right")
// --- CALCULATIONS ---
ema21 = ta.ema(close, emaLength)
ema8 = ta.ema(close, shortEmaLength)
atr = ta.atr(14)
distance = close - ema21
threshold = atr * sensitivityMultiplier
// --- STATE MANAGEMENT ---
var bool inEmaUptrend = false, var bool inEmaDowntrend = false
var bool firstBuySignalFired = false, var bool firstSellSignalFired = false
var bool firstContinuationBuyFired = false, var bool firstContinuationSellFired = false
// State management for the new stop-loss logic
var float lastHigh = na, var float secondLastHigh = na
var float lastLow = na, var float secondLastLow = na
var bool partialStopTriggered = false
bool bullishCross = ta.crossover(ema8, ema21)
bool bearishCross = ta.crossunder(ema8, ema21)
// Reset state on trend changes
if (bullishCross)
inEmaUptrend := true, inEmaDowntrend := false
firstBuySignalFired := false, firstContinuationBuyFired := false
if (bearishCross)
inEmaUptrend := false, inEmaDowntrend := true
firstSellSignalFired := false, firstContinuationSellFired := false
// --- PIVOT & TRIGGER LOGIC ---
// Detect new swing points
float newPivotHigh = ta.pivothigh(high, pivotLeft, pivotRight)
float newPivotLow = ta.pivotlow(low, pivotLeft, pivotRight)
// If in a trade, track the last two swing points
if (strategy.position_size > 0)
if not na(newPivotHigh)
secondLastHigh := lastHigh
lastHigh := newPivotHigh
if not na(newPivotLow)
secondLastLow := lastLow
lastLow := newPivotLow
// Stop-Loss Condition: A confirmed lower high AND lower low have formed
bool marketStructureBreak = not na(lastHigh) and not na(secondLastHigh) and not na(lastLow) and not na(secondLastLow) and lastHigh < secondLastHigh and lastLow < secondLastLow
// Reset pivot history and stop-loss flag when position is closed
if (strategy.position_size == 0 and strategy.position_size[1] != 0)
lastHigh := na, secondLastHigh := na
lastLow := na, secondLastLow := na
partialStopTriggered := false
// Standard V8 Trigger Logic
bool isMomentumBar = math.abs(distance) >= (threshold / 1.5)
bool isPositiveMomentumBar = isMomentumBar and distance > 0
bool buySignal = inEmaUptrend and isPositiveMomentumBar
bool buyTrigger = buySignal and not buySignal[1]
bool initialBuyTrigger = buyTrigger and not firstBuySignalFired
bool firstContinuationBuy = buyTrigger and firstBuySignalFired and not firstContinuationBuyFired
if (initialBuyTrigger)
firstBuySignalFired := true
if (firstContinuationBuy)
firstContinuationBuyFired := true
// --- STRATEGY EXECUTION ---
// ENTRY: Buy only on the first continuation 'b' signal and when flat.
if (firstContinuationBuy and strategy.position_size == 0)
strategy.entry("Long", strategy.long)
// PARTIAL EXIT (NEW): Close 50% of the position if market structure breaks down.
if (strategy.position_size > 0 and marketStructureBreak and not partialStopTriggered)
qtyToClose = strategy.position_size * 0.5
strategy.close(id="Long", qty=qtyToClose, comment="SL 50% on Structure Break") // CORRECTED ARGUMENT
partialStopTriggered := true // Ensure this only triggers once per trade
// FULL EXIT: Close any remaining position on a bearish cross.
if (strategy.position_size > 0 and bearishCross)
strategy.close("Long", comment="Exit on Bearish Cross")
// --- PLOTTING ---
plot(ema8, "Fast EMA", color=color.new(color.blue, 0), linewidth=2)
plot(ema21, "Slow EMA", color=color.new(color.orange, 0), linewidth=2)
// Plot pivots to visualize the market structure
plot(newPivotHigh, "Pivot High", color=color.new(color.red, 50), style=plot.style_circles, offset=-pivotRight)
plot(newPivotLow, "Pivot Low", color=color.new(color.green, 50), style=plot.style_circles, offset=-pivotRight)