
La stratégie est un système de trading adaptatif avancé qui, grâce à la technologie d’identification de la structure du marché, commute automatiquement entre les marchés de choc et les marchés de tendance. La stratégie utilise l’indicateur ADX pour juger de l’état du marché, une stratégie de retour au cours moyen RSI dans les marchés de choc ((ADX ≤ 25) et une stratégie de rupture de prix dans les marchés de tendance ((ADX > 25). Le système vérifie d’abord le filtre de tendance EMA de 200 cycles avant la négociation pour s’assurer qu’il est conforme à la direction de la grande tendance, tout en utilisant un système de gestion des risques basé sur ATR pour définir une stratégie de stop-loss appropriée pour les transactions dans différents environnements de marché.
Au cœur de cette stratégie se trouve le mécanisme d’adaptation de la structure du marché, qui fonctionne à travers les étapes clés suivantes:
Identifier l’état du marché: Utilisez l’ADX (indice de direction moyenne) pour déterminer si le marché est en tremblement de terre ou en tendance. ADX > 25 indique un marché en tendance, ADX ≤ 25 indique un marché en tremblement de terre.
Filtrage de la tendance: Utilisation d’une EMA de 200 cycles comme filtre de tendance. Les prix supérieurs à l’EMA sont considérés comme des bullish, les prix inférieurs à l’EMA sont considérés comme des bearish.
Une stratégie de choc des marchés:
Stratégie de marché tendanciel:
Gestion des risquesChaque transaction est financée par un risque de 10% du capital du compte et une stratégie de stop-loss différente selon le type de transaction.
La stratégie passe par un filtre temporel pour les transactions effectuées uniquement après le 1er janvier 2020 afin de s’assurer qu’elle fonctionne à un stade plus mature du marché de la crypto-monnaie.
Adaptation au marchéLe plus grand avantage de la stratégie réside dans la possibilité de basculer automatiquement entre les modes de négociation en fonction de l’état du marché, en utilisant la régression de la moyenne dans les marchés oscillants et en utilisant des stratégies de rupture dans les marchés tendances, ce qui lui permet de rester compétitif dans divers environnements de marché.
Conformité des tendancesLe filtrage des tendances de 200 EMA permet de s’assurer que la direction des transactions est conforme à la tendance principale et d’éviter les risques élevés liés aux transactions à l’inverse.
Contrôle des risques personnaliséStratégie: différentes méthodes de gestion du risque sont utilisées en fonction des différents types de transactions, l’utilisation d’un arrêt ATR fixe pour les transactions RSI, l’utilisation d’un arrêt de suivi pour les transactions de rupture, optimisant les caractéristiques de risque / rendement de chaque mode de négociation.
Commentaires du marché en temps réelLe tableau de bord intégré permet aux traders de surveiller en temps réel l’état du marché, les tendances et les signaux de négociation récents, ce qui facilite la prise de décisions et l’adaptation des stratégies.
Ajustabilité des paramètres: La stratégie offre plusieurs paramètres personnalisables, y compris la dépréciation du RSI, la longueur et la dépréciation de l’ADX, la période de rétroaction de rupture, etc., permettant aux traders d’optimiser en fonction de leurs préférences en matière de risque et de leurs opinions sur le marché.
Paramètre SensibilitéLa performance de la stratégie dépend fortement des paramètres choisis, tels que les seuils ADX et les niveaux RSI. Une mauvaise sélection de paramètres peut entraîner des changements fréquents de modèle de marché ou des signaux de négociation erronés, augmentant les coûts de négociation inutiles et les pertes potentielles. La solution consiste à effectuer un retour d’examen rigoureux des données historiques et à choisir des paramètres robustes adaptés aux conditions actuelles du marché.
Le risque d’une fausse percée: dans le mode de tendance, la stratégie est vulnérable aux fausses ruptures, en particulier dans les marchés très volatils. Ces fausses signaux peuvent entraîner le déclenchement d’un stop loss et réduire la rentabilité globale. Il est recommandé d’ajouter des indicateurs de confirmation supplémentaires ou de définir des conditions de rupture plus conservatrices pour réduire ce risque.
Risques liés à la survente: Un réglage RSI trop sensible dans un marché en turbulence peut entraîner des transactions excessives, augmenter les frais de traitement et peut manquer une évolution des prix plus importante. La solution consiste à ajuster la dépréciation du RSI ou à ajouter des filtres de trading supplémentaires, réduisant la fréquence des transactions.
Pourcentage de risque fixe: La stratégie utilise un intérêt fixe de 10% comme risque par transaction, ce qui peut entraîner des retraits de compte plus importants en cas de pertes continues. Il est recommandé de mettre en place un mécanisme d’ajustement de la taille de la position dynamique pour ajuster l’ouverture de risque en fonction de la performance des transactions récentes ou de la volatilité du marché.
Une mauvaise évaluation du marché: L’indicateur ADX peut refléter de manière inexacte l’état du marché dans certaines conditions de marché, ce qui conduit la stratégie à choisir le mauvais modèle de négociation. Il est recommandé de combiner avec d’autres indicateurs de la structure du marché pour améliorer l’exactitude des jugements de l’état.
Intégration de l’analyse de plusieurs périodes: La stratégie peut être renforcée par l’intégration de l’analyse de plusieurs périodes, par exemple en utilisant la direction de la tendance dans les périodes plus élevées pour filtrer les signaux de négociation dans les périodes plus faibles, ce qui améliore le taux de réussite global. Des implémentations spécifiques peuvent être ajoutées, telles que des filtres de tendance H4 ou Sun pour guider les transactions H1.
Optimisation des paramètres dynamiquesLa stratégie actuelle utilise des paramètres fixes, mais peut être améliorée pour ajuster automatiquement les paramètres clés en fonction de la volatilité du marché ou du comportement récent des prix. Par exemple, la barre RSI peut être ajustée en fonction de la volatilité du marché, en utilisant une gamme RSI plus étroite dans un environnement à faible volatilité et une gamme plus large dans un environnement à forte volatilité.
Confirmation de l’admission au niveau supérieurL’ajout d’indicateurs techniques supplémentaires pour la confirmation des transactions, tels que l’analyse du volume des transactions, l’identification des motifs graphiques ou l’indicateur de l’humeur du marché. Cela peut réduire les faux signaux et améliorer la qualité de l’entrée.
Une gestion des risques plus complexeMise en œuvre d’une gestion dynamique des positions et d’une stratégie d’arrêt adaptative pour ajuster la taille des transactions et le niveau d’arrêt en fonction de la volatilité du marché, de la profondeur des pertes ou des retraits récents.
Optimisation du machine learningL’utilisation d’algorithmes d’apprentissage automatique pour prédire dynamiquement les meilleurs seuils d’état du marché (comme les points de commutation ADX) ou identifier les modes de négociation qui pourraient mieux fonctionner dans des conditions de marché spécifiques, améliorant ainsi l’adaptabilité et la performance de la stratégie.
Le système de négociation d’adaptation bi-mode crée un système de négociation global capable de s’adapter automatiquement à différentes conditions de marché en combinant une stratégie de retour de la moyenne RSI et une stratégie de rupture de prix. La particularité de cette stratégie réside dans l’utilisation de l’indicateur ADX pour diviser le marché en deux états de choc et de tendance et pour appliquer la méthode de négociation la plus appropriée à chaque état.
/*backtest
start: 2024-05-14 00:00:00
end: 2025-05-12 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/
//@version=6
strategy("Improved Hybrid: RSI + Breakout + Dashboard", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// === INPUTS ===
stopMult = input.float(1.2, "Stop-Loss ATR Multiplier", minval=0.5, step=0.1)
rsiBuy = input.int(35, "RSI Buy Threshold")
rsiSell = input.int(70, "RSI Sell Threshold")
adxLen = input.int(14, "ADX Length")
adxSmooth = input.int(14, "ADX Smoothing")
adxThreshold = input.float(25, "ADX Threshold")
emaLen = input.int(200, "EMA Trend Filter")
rsiLen = input.int(14, "RSI Length")
exitRSI = input.int(50, "RSI Exit Threshold")
breakoutLen = input.int(20, "Breakout Lookback")
atrLen = input.int(14, "ATR Length")
atrMult = input.float(1.5, "ATR Trailing Multiplier")
// === TIME FILTER ===
startDate = timestamp(2020, 1, 1, 0, 0)
isLive = time >= startDate
// === ADX REGIME DETECTION ===
[plusDI, minusDI, adx] = ta.dmi(adxLen, adxSmooth)
isTrending = adx > adxThreshold
isRanging = not isTrending
regimeLabel = isTrending ? "TRENDING" : "RANGING"
// === EMA TREND FILTER ===
ema = ta.ema(close, emaLen)
bullish = close > ema
bearish = close < ema
biasLabel = bullish ? "Bullish" : "Bearish"
// === RSI MEAN REVERSION ===
rsi = ta.rsi(close, rsiLen)
rsiLong = isLive and isRanging and rsi < rsiBuy and bullish
rsiShort = isLive and isRanging and rsi > rsiSell and bearish
rsiLongExit = rsi > exitRSI
rsiShortExit = rsi < exitRSI
// === BREAKOUT ENTRIES ===
atr = ta.atr(atrLen)
highestBreak = ta.highest(close[1], breakoutLen)
lowestBreak = ta.lowest(close[1], breakoutLen)
longBreak = isLive and isTrending and bullish and close > highestBreak
shortBreak = isLive and isTrending and bearish and close < lowestBreak
// === ENTRIES ===
if rsiLong
strategy.entry("RSI Long", strategy.long)
if rsiShort
strategy.entry("RSI Short", strategy.short)
if longBreak
strategy.entry("Breakout Long", strategy.long)
if shortBreak
strategy.entry("Breakout Short", strategy.short)
// === EXITS ===
if rsiLongExit
strategy.close("RSI Long")
if rsiShortExit
strategy.close("RSI Short")
strategy.exit("RSI Long Exit", from_entry="RSI Long", stop=close - atr * stopMult)
strategy.exit("RSI Short Exit", from_entry="RSI Short", stop=close + atr * stopMult)
strategy.exit("BO Long Exit", from_entry="Breakout Long", trail_points=atr * atrMult, trail_offset=atr * atrMult)
strategy.exit("BO Short Exit", from_entry="Breakout Short", trail_points=atr * atrMult, trail_offset=atr * atrMult)
// === DEBUG PLOTS ===
plotshape(rsiLong, title="RSI Long", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(rsiShort, title="RSI Short", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
plotshape(longBreak, title="Breakout Long", location=location.belowbar, color=color.blue, style=shape.triangleup, size=size.small)
plotshape(shortBreak, title="Breakout Short", location=location.abovebar, color=color.purple, style=shape.triangledown, size=size.small)
plot(rsi, "RSI", color=color.blue)
plot(ema, "200 EMA", color=color.orange)
// === DASHBOARD ===
var label dash = na
if bar_index % 5 == 0
label.delete(dash)
dash := label.new(bar_index, high,
"Regime: " + regimeLabel + " | Bias: " + biasLabel + " | Last: None",
xloc=xloc.bar_index, yloc=yloc.price,
style=label.style_label_left, size=size.small,
textcolor=color.white, color=color.black)