Système de double stratégie de suivi de tendance adaptatif et de trading de range

ADX SMA BB RSI MACD ATR
Date de création: 2025-02-21 10:14:04 Dernière modification: 2025-02-27 17:17:45
Copier: 1 Nombre de clics: 419
2
Suivre
319
Abonnés

Système de double stratégie de suivi de tendance adaptatif et de trading de range Système de double stratégie de suivi de tendance adaptatif et de trading de range

Aperçu

La stratégie est un système de trading auto-adaptatif combinant le suivi des tendances et la négociation des intervalles. Le système identifie dynamiquement l’état du marché via les indicateurs ADX et utilise différentes stratégies de négociation dans les marchés tendance et oscillant. Dans les marchés tendance, la stratégie utilise le signal de croisement des moyennes mobiles en combinaison avec la confirmation RSI et MACD.

Principe de stratégie

Le cœur de la stratégie est le mécanisme d’identification de l’état du marché. La stratégie de suivi de la tendance est activée lorsque l’ADX est supérieur à 25 et est jugé comme un marché tendance:

  1. Condition à plusieurs têtes: 50 jours sur la moyenne et 200 jours sur la moyenne, le RSI est supérieur à 50 et le MACD est au-dessus de la ligne de signal
  2. Condition de tête vide: traversée de la moyenne des 200 jours en dessous de la moyenne des 50 jours, avec un RSI inférieur à 50 et une ligne MACD en dessous de la ligne de signal

Lorsque l’ADX est inférieur ou égal à 25 et qu’il est jugé qu’il s’agit d’un marché oscillant, utilisez une stratégie de négociation intercalaire:

  1. Condition multiple: le prix est en hausse ou en baisse dans la zone de Brin et le RSI est inférieur à 40
  2. Condition de tête vide: prix en dessous de la courbe de Brin et RSI supérieur à 60

Le paramètre stop-loss est basé sur le multiplicateur dynamique de l’ATR, avec un stop-loss de 1,5 fois l’ATR et un stop-loss de 3 fois l’ATR.

Avantages stratégiques

  1. Adaptabilité du marché: capacité à changer automatiquement de stratégie de trading en fonction de l’état du marché
  2. Confirmation de signaux multiples: réduction des faux signaux par la combinaison de plusieurs indicateurs techniques
  3. Amélioration du contrôle des risques: mise en place d’un mécanisme d’arrêt et d’arrêt dynamique pour s’adapter aux fluctuations du marché
  4. La logique de la stratégie est claire: les critères de jugement des tendances et des intervalles sont clairs, ce qui permet d’optimiser les ajustements
  5. Les couleurs de fond permettent de visualiser les conditions du marché, ce qui est très intuitif.

Risque stratégique

  1. Signaux de retard: les indicateurs tels que les moyennes mobiles ont un certain retard et peuvent manquer les meilleurs points d’entrée
  2. Risque de fausse rupture: des signaux de fausse rupture peuvent être envoyés par Brin dans un marché en crise
  3. Sensitivité des paramètres: les paramètres tels que les valeurs de seuil ADX et les multiplicateurs ATR peuvent affecter les performances de la stratégie
  4. Risque de basculement des marchés: des signaux erronés peuvent apparaître pendant les périodes de transition entre tendances et turbulences
  5. Risque de stop-loss: le stop-loss ATR du multiplicateur fixe peut être trop élevé pendant les périodes de forte volatilité

Orientation de l’optimisation de la stratégie

  1. Introduction de l’analyse du trafic: ajout d’un facteur de trafic dans la confirmation du signal pour améliorer la fiabilité du signal
  2. Optimiser le jugement sur l’état du marché: envisagez de modifier l’ADX en une dépréciation dynamique ou en combinaison avec d’autres indicateurs
  3. Amélioration du mécanisme de stop loss: introduction d’un stop tracking ou adaptation du multiplicateur ATR en fonction de la dynamique du taux de volatilité
  4. Ajout de filtrage temporel: ajout d’une limite de période de négociation pour éviter les périodes de faible liquidité
  5. Amélioration des mécanismes de confirmation des signaux: l’ajout d’une analyse de la forme des prix peut être envisagé pour améliorer la qualité des signaux

Résumer

La stratégie s’adapte aux différents environnements de marché grâce à l’identification dynamique de l’état du marché et à la commutation de la stratégie correspondante. La stratégie a une bonne utilité grâce à la combinaison de plusieurs indicateurs techniques et à un mécanisme de contrôle des risques dynamique.

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

//@version=6
strategy("Trend vs Range Trading - Fully Fixed for v6", overlay=true)

// 🔹 Moving Averages (SMA 50 & 200)
sma50 = ta.sma(close, 50)
sma200 = ta.sma(close, 200)

// 🔹 Proper ADX Calculation (With Corrected ta.dmi() Parameters)
dmiLength = 14
adxSmoothing = 14
[dmiPlus, dmiMinus, adx] = ta.dmi(dmiLength, adxSmoothing)

// 🔹 Bollinger Bands Calculation (Fixed for v6)
bb_length = 20
bb_mult = 2.0
bb_basis = ta.sma(close, bb_length)
bb_dev = ta.stdev(close, bb_length)
bb_upper = bb_basis + (bb_mult * bb_dev)
bb_lower = bb_basis - (bb_mult * bb_dev)

// 🔹 Additional Indicators (RSI & MACD)
rsi = ta.rsi(close, 14)
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)

// 🔹 ATR for Stop Loss & Take Profit
atr = ta.atr(14)
stop_loss_mult = 1.5  // Stop Loss Multiplier
take_profit_mult = 3.0  // Take Profit Multiplier

// 🔹 Trend vs Range Market Detection
is_trending = adx > 25

// 🔹 Trend Following Strategy (SMA Cross & Confirmation)
long_condition_trend = is_trending and ta.crossover(sma50, sma200) and rsi > 50 and macdLine > signalLine
short_condition_trend = is_trending and ta.crossunder(sma50, sma200) and rsi < 50 and macdLine < signalLine

// 🔹 Range Trading Strategy (Bollinger Bands & RSI Confirmation)
long_condition_range = not is_trending and ta.crossover(close, bb_lower) and rsi < 40
short_condition_range = not is_trending and ta.crossunder(close, bb_upper) and rsi > 60

// 🔹 Stop Loss & Take Profit Calculations
long_stop_loss = close - (atr * stop_loss_mult)
long_take_profit = close + (atr * take_profit_mult)
short_stop_loss = close + (atr * stop_loss_mult)
short_take_profit = close - (atr * take_profit_mult)

// 🔹 Execute Trades (With Stop Loss & Take Profit)
if long_condition_trend
    strategy.entry("Long_Trend", strategy.long)
    strategy.exit("Exit_Long_Trend", from_entry="Long_Trend", stop=long_stop_loss, limit=long_take_profit)

if short_condition_trend
    strategy.entry("Short_Trend", strategy.short)
    strategy.exit("Exit_Short_Trend", from_entry="Short_Trend", stop=short_stop_loss, limit=short_take_profit)

if long_condition_range
    strategy.entry("Long_Range", strategy.long)
    strategy.exit("Exit_Long_Range", from_entry="Long_Range", stop=long_stop_loss, limit=long_take_profit)

if short_condition_range
    strategy.entry("Short_Range", strategy.short)
    strategy.exit("Exit_Short_Range", from_entry="Short_Range", stop=short_stop_loss, limit=short_take_profit)

// 🔹 Visual Indicators & Background Color (Trend vs Range)
bgcolor(is_trending ? color.green : color.blue)

// 🔹 Plot Moving Averages & Bollinger Bands
plot(sma50, color=color.blue, title="SMA 50")
plot(sma200, color=color.red, title="SMA 200")
plot(bb_upper, color=color.green, title="BB Upper")
plot(bb_lower, color=color.orange, title="BB Lower")