
La stratégie de quantification mixte de filtrage de tendance EMA multiple et de suivi des arrêts ATR est un système de trading complet qui combine plusieurs éléments clés de l’analyse technique. Le cœur de la stratégie consiste à utiliser l’indice de mouvement à plusieurs périodes (EMA) comme filtre de confirmation de la tendance, tout en associant les indicateurs de la gamme moyenne réelle (ATR) pour créer un système de suivi des arrêts dynamique. La stratégie intègre également une fonction de filtrage des périodes de négociation, permettant aux traders d’optimiser l’exécution des transactions en fonction des périodes actives d’un marché particulier.
Les principes centraux de cette stratégie peuvent être divisés en quatre composantes clés:
Confirmation de la tendance à la multiplication des EMA: La stratégie utilise des moyennes mobiles indicielles (EMA) de quatre périodes différentes (EMA 20, 50, 100 et 200) pour déterminer la direction de la tendance du marché. Elle n’est considérée comme une tendance à la hausse que si le prix est simultanément au-dessus de toutes les quatre EMA; elle n’est considérée comme une tendance à la baisse que si le prix est simultanément au-dessous de toutes les quatre EMA. Ce mécanisme de confirmation multiple aide à filtrer les fausses signaux de tendances faibles et de choc sur les marchés.
Système d’arrêt de suivi ATR: La stratégie utilise un stop-loss suivi dynamique basé sur la plage moyenne réelle (ATR). L’ATR est un indicateur de la volatilité du marché qui permet de définir la distance de stop-loss en la multipliant par un facteur de sensibilité (défaut 3.0). Le stop-loss suivi s’ajuste automatiquement en fonction des variations de prix, se déplaçant progressivement lorsque les prix augmentent et restant fixe lorsque les prix baissent, afin de bloquer les bénéfices et limiter les pertes.
Les signaux de croisement de la ligne de prix et de stop: le signal d’achat de la stratégie est généré lorsque le prix monte en traversant la ligne de suivi de l’ATR et satisfait aux conditions de la tendance haussière; le signal de vente est généré lorsque le prix descend en traversant la ligne de suivi de l’ATR et satisfait aux conditions de la tendance baissière. Ce mécanisme de signal croisé, combiné à la confirmation de la tendance, aide à capturer les points de retournement de la tendance.
Filtrage des périodes de transaction: La stratégie a introduit un filtrage des heures de négociation, qui est défini par défaut comme “0930-1600” (heure de négociation standard des États-Unis). Ce filtre garantit que le signal de négociation est généré uniquement pendant les heures de négociation actives désignées, évitant ainsi les risques potentiels de basse liquidité ou de forte volatilité.
Confirmation de tendances à plusieurs niveauxEn demandant que les prix se situent simultanément sur le même côté de quatre EMA de différentes périodes, la stratégie améliore considérablement la fiabilité de la confirmation de la tendance, filtre efficacement les faux signaux dans les marchés de choc et réduit la fréquence des transactions inutiles.
Gestion dynamique des risquesLe système de suivi des arrêts ATR permet d’ajuster automatiquement la distance des arrêts en fonction de la volatilité réelle du marché, ce qui signifie que les prix ont plus d’espace d’action dans les marchés plus volatils, tandis que les arrêts plus serrés dans les marchés moins volatils permettent une adaptation dynamique au risque.
Haute personnalisation: La stratégie fournit plusieurs paramètres réglables, y compris le cycle ATR, le facteur de sensibilité et le réglage de la période de négociation, permettant aux traders d’optimiser l’ajustement en fonction des différentes caractéristiques du marché et des préférences de risque personnelles.
Optimisation du filtrage temporel: La fonction de filtrage des périodes de négociation permet à la stratégie de se concentrer sur les périodes de négociation les plus actives et les plus liquides du marché, évitant ainsi les risques potentiels d’après-vente ou d’autres périodes de faible liquidité.
Le retour visuel intuitif: La stratégie affiche clairement les lignes EMA, les lignes de stop loss et les signaux d’achat et de vente sur le graphique, tout en reflétant intuitivement la position relative du prix actuel par rapport à la ligne de stop loss grâce aux changements de couleur du graphique en colonnes, ce qui permet aux traders de surveiller l’état de la stratégie en temps réel.
Délai de conversion: Les filtres EMA multiples, bien qu’améliorant la fiabilité du signal, introduisent un certain retard qui peut entraîner la perte d’une partie des bénéfices potentiels au début d’une tendance ou une sortie trop tardive à la fin d’une tendance. C’est le compromis nécessaire entre fiabilité et rapidité.
Les marchés horizontaux ne sont pas performants: Dans un marché de couverture horizontale où il n’y a pas de tendance claire, il peut être difficile pour la stratégie de satisfaire à toutes les conditions de filtrage des EMAs, car les prix traversent fréquemment plusieurs EMAs, ce qui peut entraîner la perte d’opportunités de négociation potentielles ou la production de faux signaux.
Paramètre Sensibilité: La performance de la stratégie dépend fortement de la configuration de paramètres clés tels que le facteur de sensibilité ATR, le cycle ATR. Des paramètres inappropriés peuvent entraîner un arrêt trop serré (être déclenché fréquemment) ou trop lâche (perdre trop). Il est recommandé d’optimiser ces paramètres en testant en arrière dans différentes conditions de marché.
Risque d’urgenceATR trace les arrêts qui peuvent ne pas être en mesure de réagir en temps opportun, ce qui entraîne des pertes réelles supérieures aux attentes. Il est recommandé d’utiliser des arrêts de rigidité avec le plus grand risque.
Risques liés à la survente: Malgré plusieurs niveaux de filtrage, dans les marchés à forte volatilité, la fréquente intersection des prix avec l’ATR pour suivre les lignes de stop-loss peut entraîner une survente des transactions, augmentant les coûts de transaction. L’ajout d’une exigence de temps de position minimum peut être envisagé pour atténuer ce problème.
Indicateur de force de tendance à la hausse: La stratégie actuelle se base uniquement sur la position relative du prix par rapport aux EMA multiples pour déterminer la tendance. On peut envisager d’augmenter les indicateurs de force de tendance tels que l’ADX (indice de direction moyenne), de définir un seuil de force de tendance minimale et de filtrer davantage les signaux dans un environnement de tendance faible.
Introduction de la confirmation de la quantité de transaction: L’intégration de l’analyse du volume des transactions dans la logique de génération de signaux, en demandant que les signaux d’achat et de vente soient accompagnés d’une confirmation de volume suffisante, contribue à améliorer la fiabilité du signal. Par exemple, le volume des transactions au moment de la génération du signal peut être demandé supérieur au volume moyen des transactions au cours des N derniers cycles.
Optimisation du mécanisme d’adaptation des paramètres d’arrêt: Les stratégies actuelles utilisent un coefficient de sensibilité ATR fixe et peuvent envisager un mécanisme d’ajustement des paramètres d’adaptation basé sur la volatilité historique ou l’état du marché. Par exemple, augmenter automatiquement le coefficient de sensibilité dans les marchés à forte volatilité et réduire le coefficient de sensibilité dans les marchés à faible volatilité.
Ajoutez un filtre pour les objectifs de profit et le rapport de retour sur risque: Ajout d’un mécanisme de filtrage des signaux basé sur des objectifs de rendement anticipés et un rapport de rendement au risque, ne traitant que les transactions dont le rapport de rendement au risque anticipé est supérieur à un seuil spécifique. Cela aide à optimiser l’efficacité de l’utilisation des fonds et à se concentrer sur des opportunités de trading de haute qualité.
Classification de l’état du marché et commutation des stratégies: Mise en place d’un mécanisme de reconnaissance automatique de l’état du marché (trend/tremblement) et adaptation dynamique des paramètres de la stratégie en fonction de l’état du marché ou de la commutation de la logique de la stratégie différente. Par exemple, l’utilisation de la stratégie actuelle dans un marché clairement tendance et le passage à la stratégie de retour à la valeur moyenne dans un marché en turbulence.
Intégration de filtres de base: Pour certaines catégories d’actifs, il est possible d’envisager d’intégrer des indicateurs fondamentaux ou des filtres d’événements pertinents pour éviter de négocier avant ou après la publication de données économiques importantes ou d’autres événements à forte incertitude.
La stratégie de quantification mixte de filtrage de tendance EMA multiple et de suivi des arrêts ATR est un système de négociation complet qui combine les avantages de suivi des tendances et de gestion des risques. La stratégie offre une bonne capacité de contrôle des risques en combinant plusieurs mécanismes tels que la confirmation de tendance EMA pluricyclique, le suivi des arrêts ATR dynamiques, les signaux de croisement des prix et le filtrage des périodes de négociation.
Le principal avantage de cette stratégie réside dans le fait que la confirmation de tendance à plusieurs niveaux améliore la fiabilité du signal, tandis que le suivi des arrêts ATR offre une gestion dynamique des risques adaptée à la volatilité du marché. Cependant, la stratégie comporte également des risques potentiels tels que le retard de conversion de tendance, la mauvaise performance du marché horizontal et la sensibilité des paramètres.
Il y a encore de la place pour améliorer la stratégie en ajoutant des mesures d’optimisation telles que des indicateurs de force de tendance, la confirmation du volume de transactions et des mécanismes de paramètres d’adaptation. Plus important encore, les traders doivent ajuster les paramètres clés en fonction de la variété de transactions et de l’environnement du marché, avec un retour d’expérience suffisant, et envisager d’utiliser la stratégie dans le cadre d’un système de négociation plus large, en combinaison avec d’autres stratégies complémentaires, pour obtenir des résultats optimaux.
/*backtest
start: 2025-07-17 00:00:00
end: 2025-07-24 00:00:00
period: 5m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDT"}]
*/
//@version=5
//Credits to HPotter who is the creator of the original code.
//Created as a strategy with an added EMA Trend Filter by shannonnhxrk
//Added a time button so you can adjust what times it signals.
//@version=5
strategy("UT Bot Strategy with EMA Trend Filter", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// === INPUTS ===
src = close
keyvalue = input.float(3.0, title="Key Value (Sensitivity)", step=0.5)
atrperiod = input.int(10, title="ATR Period")
xATR = ta.atr(atrperiod)
nLoss = keyvalue * xATR
// === EMAs ===
ema20 = ta.ema(src, 20)
ema50 = ta.ema(src, 50)
ema100 = ta.ema(src, 100)
ema200 = ta.ema(src, 200)
plot(ema20, color=color.orange, title="EMA 20")
plot(ema50, color=color.blue, title="EMA 50")
plot(ema100, color=color.purple, title="EMA 100")
plot(ema200, color=color.black, title="EMA 200")
// === Trend Filters ===
isUptrend = close > ema20 and close > ema50 and close > ema100 and close > ema200
isDowntrend = close < ema20 and close < ema50 and close < ema100 and close < ema200
// === ATR Trailing Stop ===
var float xATRTrailingStop = na
xATRTrailingStop := src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1]) ? math.max(nz(xATRTrailingStop[1]), src - nLoss) :
src < nz(xATRTrailingStop[1]) and src[1] < nz(xATRTrailingStop[1]) ? math.min(nz(xATRTrailingStop[1]), src + nLoss) :
src > nz(xATRTrailingStop[1]) ? src - nLoss : src + nLoss
// === Time Filter ===
// === Buy/Sell Conditions with Time Filter ===
buy = ta.crossover(src, xATRTrailingStop) and isUptrend
sell = ta.crossunder(src, xATRTrailingStop) and isDowntrend
// === Strategy Execution ===
if buy
strategy.close("Short")
strategy.entry("Long", strategy.long)
if sell
strategy.close("Long")
strategy.entry("Short", strategy.short)
// === Visuals ===
plotshape(buy, title="Buy", style=shape.labelup, location=location.belowbar, color=color.green, text="Buy", textcolor=color.white, size=size.tiny)
plotshape(sell, title="Sell", style=shape.labeldown, location=location.abovebar, color=color.red, text="Sell", textcolor=color.white, size=size.tiny)
plot(xATRTrailingStop, color=buy ? color.green : sell ? color.red : color.gray, title="Trailing Stop")
barcolor(src > xATRTrailingStop ? color.green : color.red)