
Cette stratégie de trading quantitative, appelée “système de jugement de tendance dynamique à plusieurs périodes de temps”, est un système intégré de plusieurs indicateurs techniques, qui intègre principalement des indicateurs tels que la moyenne mobile (EMA) croisée, l’indice de force relative (RSI), la moyenne pondérée des volumes de transactions (VWAP) et l’indice de direction moyen (ADX). La stratégie utilise l’analyse de plusieurs périodes de temps pour identifier efficacement les zones de survente et de survente du marché et pour juger du flux de fonds de l’institution.
Le principe central de la stratégie est basé sur la confirmation synchrone d’indicateurs de marché à plusieurs niveaux. Tout d’abord, le système calcule les moyennes mobiles de l’indice de deux périodes différentes, soit l’EMA à court terme (9) et l’EMA à long terme (21), pour identifier la direction de la tendance et les points de basculement potentiels. Ensuite, le système obtient des données RSI (14) à partir du délai de 15 minutes, introduisant l’analyse des périodes pour confirmer l’état des volumes de prix.
Plus précisément, les conditions d’entrée en cours d’exécution doivent être remplies simultanément: l’EMA à court terme doit traverser l’EMA à long terme ((cross-bullish), le RSI de 15 minutes doit être supérieur à 30 ((non survendu), le VWAP doit être significativement inférieur à deux EMA ((au moins 0,1%), ce qui indique l’existence de pressions de vente et de sentiment de baisse de l’institution. La condition d’entrée multiple ne nécessite actuellement que le RSI de 15 minutes inférieur à 30 ((état de survente), et les filtres EMA et VWAP ne sont pas encore ajoutés.
En outre, la stratégie a introduit un filtre ADX optionnel qui permet de calculer manuellement la valeur ADX (longueur par défaut 14) et de définir le seuil minimum (défaut 20) pour s’assurer que les transactions se déroulent uniquement dans des tendances bien définies. L’utilisateur peut activer ou désactiver le filtre ADX, ce qui augmente la flexibilité de la stratégie. La stratégie prend également en charge la sélection de la direction des transactions en entrant des paramètres (long, court ou à la fois), ce qui facilite l’adaptation aux systèmes de trading automatisés tels que les robots OKX ou les alertes TradingView.
Confirmation synchronisée de plusieurs indicateursLa combinaison de quatre indicateurs: croisement EMA, dynamique RSI, flux de fonds institutionnels VWAP et intensité de tendance ADX, forme un mécanisme de confirmation de signal de transaction à plusieurs niveaux, ce qui améliore considérablement la fiabilité du signal.
Analyse de plusieurs périodesL’introduction de données RSI sur les 15 minutes permet à la stratégie d’évaluer la dynamique du marché dans une perspective plus macro, réduisant ainsi les points morts que l’analyse d’une seule période peut entraîner.
Perspectives financières de l’institutionL’utilisation de l’écart entre le VWAP et l’EMA comme indicateur de l’engagement des fonds institutionnels, cette perspective institutionnelle permet à la stratégie de mieux identifier les véritables pressions et zones de soutien du marché.
Mode de fonctionnement flexibleAvec le paramètre tradeDirection, l’utilisateur peut choisir entre faire plus, faire moins ou faire des transactions bidirectionnelles en fonction de l’environnement du marché ou de ses préférences personnelles, sans avoir à maintenir plusieurs versions de stratégie.
Filtrage des tendances dynamiquesLe filtre ADX en option aide la stratégie à négocier uniquement dans des tendances bien définies, réduisant efficacement les faux signaux dans les marchés en tremblement, tout en conservant la flexibilité de désactiver ce filtre.
Intégration de la gestion des risques: La stratégie a un mécanisme de stop loss et de stop-loss intégré (un nombre de points de prix fixes), combiné à des conditions de surachat et de survente du RSI comme signal de sortie, formant une boucle de clôture complète.
Le code est efficaceLa stratégie: la structure du code est claire, la logique est modulaire, le processus de calcul est efficace, facile à entretenir et à optimiser davantage.
Les conditions d’entrée sont imparfaites.: la logique de survente de la stratégie actuelle est basée uniquement sur les conditions de survente du RSI < 30, et le manque de filtrage EMA croisé et VWAP peut entraîner une entrée prématurée ou une survente fréquente dans une tendance baissière persistante, augmentant le risque de perte.
Réglage de l’arrêt de perte fixeStratégie utilisant un nombre de points fixe ((100 points d’arrêt, 200 points d’arrêt) au lieu d’un arrêt dynamique basé sur le pourcentage ou la volatilité, qui peut ne pas être suffisamment flexible dans différents environnements de volatilité, les périodes de haute volatilité peuvent être trop lâches et les périodes de basse volatilité peuvent être trop serrées.
Aucun contrôle de la fréquence des transactionsLe manque de jugement sur les stratégies d’opentrades peut entraîner des entrées répétées lors de déclenchements successifs de signaux, créant un chevauchement de positions et augmentant involontairement l’ouverture de risque.
Complicité de calcul de l’ADX: Le calcul manuel de l’ADX augmente la complexité du code, bien que sa fonctionnalité soit correcte, mais sa maintenabilité est médiocre, ce qui peut entraîner des erreurs de jugement de tendance en cas d’écart de calcul.
Le seuil de la différence VWAP est fixéLe seuil d’écart VWAP fixe de 0,1% peut ne pas s’appliquer à toutes les conditions du marché, peut être trop souple dans les marchés à forte volatilité et trop strict dans les marchés à faible volatilité.
Manque d’analyse de sensibilité à la rétroanalyse: Le code ne montre pas les résultats de l’optimisation des paramètres ou de l’analyse de sensibilité, il est impossible de déterminer si la combinaison de paramètres actuelle (par exemple, EMA 9⁄21, RSI 14, ADX 14⁄20) est optimale.
Il peut y avoir des retardsLes requêtes de données à travers les périodes peuvent introduire des retards de données dans certains cas, en particulier dans les marchés en évolution rapide, ce qui affecte la précision du timing des transactions.
Logique de multiples entréesPour ajouter des images à des stratégies multiples, les conditions VWAP et le filtrage croisé EMA exigent un VWAP significativement supérieur à deux EMA (par exemple, 0,1%) et une EMA à court terme sur une EMA à long terme, ce qui permet une symétrie logique polyvalente et améliore la qualité du signal multiples.
Ajout de contrôle de fréquence de transactionOpentrades == 0 pour éviter l’empilement de positions causé par des signaux continus et pour mieux contrôler les orifices de risque.
Réglage de l’arrêt de perte dynamique: Basé sur l’amplitude réelle moyenne (ATR) pour ajuster dynamiquement les niveaux de stop-loss et de stop-stop, afin de rendre la gestion des risques plus adaptée aux conditions de marché actuelles et de remplacer les paramètres de points fixes actuels.
Optimiser le calcul de l’ADX: envisager d’utiliser la fonction ta.adx () intégrée à TradingView pour remplacer le calcul manuel, simplifier le code et améliorer la maintenance, tout en ajoutant le jugement de direction ADX () + la relation DI à -DI) pour affiner davantage la direction de la tendance.
Le seuil d’écart VWAP dynamique: la conception du seuil de l’écart VWAP comme un paramètre dynamique basé sur la volatilité du marché, par exemple en relation avec l’ATR, permettant aux conditions de filtrage de s’adapter aux différentes conditions du marché.
Ajouter un filtre de temps de transactionLes échanges de devises et de devises en ligne sont réglementés par la loi sur les échanges de devises et de devises en ligne.
Conformité des tendances à plusieurs périodesConsidérez d’ajouter des périodes de temps plus élevées (par exemple, 1 heure ou 4 heures) pour déterminer la direction de la tendance, et ne négociez que lorsque plusieurs périodes de temps sont en phase de tendance, afin de réduire davantage les faux signaux.
Introduction de la confirmation de la quantité de transactionAugmentation de l’indicateur de volume des transactions: confirmation que le volume des transactions requises lors d’un croisement EMA est significativement supérieur à la moyenne des cycles précédents, améliorant ainsi la fiabilité du signal de changement de tendance.
Le “Multi-Time Frame Dynamic Trend Judging System” est une stratégie de quantification intégrée combinant plusieurs outils d’analyse technique, qui fournit aux traders des signaux d’entrée et de sortie relativement fiables grâce à des mécanismes de confirmation multiple des flux de fonds des institutions EMA croisés, de la dynamique RSI, du VWAP et de l’intensité de la tendance ADX. La stratégie accorde une attention particulière à l’analyse combinée du comportement des fonds des institutions et de l’émotion de détail, tout en prenant en compte les caractéristiques du suivi des tendances et du renversement des transactions.
Bien que les stratégies aient fait de bonnes performances en termes de synergie et de flexibilité multi-indicateurs, il existe encore des problèmes tels que l’imperfection de la multiconditionnalité, la fixation de la gestion des risques et la possibilité d’une entrée répétée. La performance et la stabilité des stratégies devraient être considérablement améliorées par l’amélioration de la multiconditionnalité, la mise en œuvre de la gestion dynamique des risques, l’ajout de contrôles de fréquence de transaction, l’optimisation du calcul ADX, la conception de la marge VWAP dynamique et l’introduction de mesures d’optimisation telles que le filtrage des heures de transaction et les exigences de cohérence de plusieurs périodes.
Dans l’ensemble, la stratégie représente une approche globale et flexible de la conception d’un système de négociation, qui offre aux traders un outil théoriquement adapté à une variété d’environnements de marché en tenant compte intégralement des indicateurs techniques, de la structure des prix, de l’humeur du marché et du comportement institutionnel. Après optimisation des recommandations, la stratégie a le potentiel d’être un système de négociation plus complet et plus efficace.
/*backtest
start: 2024-05-13 00:00:00
end: 2025-05-11 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("MinhPhan MA Crossover Strategy RSI 15m + ADX Toggle", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.001)
// === Inputs ===
shortLen = input.int(9, title="Short EMA")
longLen = input.int(21, title="Long EMA")
useAdxFilter = input.bool(true, title="Enable ADX Filter?")
adxLen = input.int(14, title="ADX Length")
adxThresh = input.float(20, title="Min ADX to Trade")
// === EMAs ===
shortMA = ta.ema(close, shortLen)
longMA = ta.ema(close, longLen)
// === VWAP ===
vwap = ta.vwap
// === RSI from 15-minute timeframe ===
rsi_15m = request.security(syminfo.tickerid, "15", ta.rsi(close, 14))
// === Manual ADX Calculation ===
upMove = high - high[1]
downMove = low[1] - low
plusDM = na(upMove) or upMove <= downMove or upMove < 0 ? 0 : upMove
minusDM = na(downMove) or downMove <= upMove or downMove < 0 ? 0 : downMove
tr = math.max(math.max(high - low, math.abs(high - close[1])), math.abs(low - close[1]))
smoothedTR = ta.rma(tr, adxLen)
smoothedPlusDM = ta.rma(plusDM, adxLen)
smoothedMinusDM = ta.rma(minusDM, adxLen)
plusDI = 100 * smoothedPlusDM / smoothedTR
minusDI = 100 * smoothedMinusDM / smoothedTR
dx = 100 * math.abs(plusDI - minusDI) / (plusDI + minusDI)
adx = ta.rma(dx, adxLen)
isTrending = useAdxFilter ? adx > adxThresh : true // ADX toggle logic
// === VWAP Gap Filter ===
gapThreshold = 0.001
vwapBelowEMAs =
(shortMA - vwap) / shortMA > gapThreshold and
(longMA - vwap) / longMA > gapThreshold
// === Direction Control ===
tradeDirection = input.string(title="Trade Direction", defval="Both", options=["Long", "Short", "Both"])
allowLong = tradeDirection == "Long" or tradeDirection == "Both"
allowShort = tradeDirection == "Short" or tradeDirection == "Both"
// === Entry Conditions ===
if (allowLong and rsi_15m < 30 and isTrending)
strategy.entry("Long", strategy.long)
if (allowShort and rsi_15m > 30 and ta.crossunder(shortMA, longMA) and vwapBelowEMAs and isTrending)
strategy.entry("Short", strategy.short)
// === Exit Conditions ===
if (strategy.position_size > 0 and rsi_15m > 70)
strategy.exit("Exit Long", from_entry="Long", loss=100, profit=200)
if (strategy.position_size < 0 and rsi_15m < 30)
strategy.exit("Exit Short", from_entry="Short", loss=100, profit=200)
// === Plots ===
plot(shortMA, color=color.blue, title="Short EMA")
plot(longMA, color=color.red, title="Long EMA")
plot(vwap, title="VWAP", color=color.purple, linewidth=2)
plot(adx, title="ADX", color=color.orange)
hline(adxThresh, "ADX Threshold", color=color.gray, linestyle=hline.style_dashed)