Une stratégie adaptative combinant le suivi des tendances multi-indicateurs avec le trading de range

supertrend EMA ADX RSI BB VWAP DMI SMA ATR HLC3
Date de création: 2025-02-21 11:08:52 Dernière modification: 2025-02-21 11:08:52
Copier: 1 Nombre de clics: 372
2
Suivre
319
Abonnés

Une stratégie adaptative combinant le suivi des tendances multi-indicateurs avec le trading de range Une stratégie adaptative combinant le suivi des tendances multi-indicateurs avec le 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. Il utilise la synergie de plusieurs indicateurs techniques pour basculer de manière flexible dans différents environnements de marché. La stratégie utilise des indicateurs tels que Supertrend, Moving Average, ADX, RSI et Bollinger Bands pour identifier l’état du marché et déterminer les signaux de négociation, tout en faisant référence aux prix en combinaison avec VWAP et en mettant en place un mécanisme de stop-loss pour contrôler les risques.

Principe de stratégie

La logique centrale de la stratégie est divisée en deux parties: le suivi de la tendance et le trading intermédiaire. Dans les marchés en tendance (déterminés par l’ADX> 25), la stratégie génère des signaux en fonction de la direction de la Supertrend, des croisements EMA et de la position VWAP. Dans les marchés en choc, la stratégie utilise les limites de la ceinture de Brin et le niveau de survente du RSI pour les transactions.

  • Mode de suivi des tendances: activé lorsque l’ADX est supérieur à 25, combiné à la relation de position de l’EMA à 2050 cycles, à la direction de la Supertrend et à la position globale du prix par rapport au VWAP
  • Mode de négociation intermédiaire: activé lorsque l’ADX est inférieur à 25 et activé lorsque le prix atteint la limite de la zone de Brin et que le RSI atteint son maximum
  • Les conditions de sortie incluent: déclenchement d’un arrêt de perte, renversement de la super tendance ou atteinte du seuil RSI

Avantages stratégiques

  1. Adaptabilité: la capacité de changer automatiquement de mode de négociation en fonction de l’état du marché
  2. Vérification multiple: utilisez la vérification croisée de plusieurs indicateurs pour améliorer la fiabilité du signal
  3. Contrôle du risque: paramètre un pourcentage fixe de stop loss et utilise les extrêmes du RSI pour un ajustement dynamique
  4. Une approche globale: maîtriser les tendances tout en profitant de la volatilité des marchés
  5. Aide visuelle: visualisation des indicateurs importants pour faciliter l’analyse et la prise de décision

Risque stratégique

  1. Sensitivité des paramètres: les paramètres de plusieurs indicateurs peuvent affecter les performances de la stratégie
  2. Rarité des signaux: les indicateurs techniques eux-mêmes sont en retard
  3. Risque de fausse percée: Faux signaux sur le marché horizontal
  4. Complexité de calcul: le calcul en temps réel de plusieurs indicateurs peut affecter l’efficacité de l’exécution
  5. Adaptabilité du marché: peut être faible dans certains environnements de marché

Orientation de l’optimisation de la stratégie

  1. Ajustement des paramètres dynamiques: les paramètres des indicateurs peuvent être ajustés automatiquement en fonction de la volatilité
  2. Introduction de l’analyse du trafic: ajout d’indicateurs de trafic pour vérifier l’efficacité du signal
  3. Optimisation du mécanisme de stop-loss: utilisation du stop-loss dynamique ATR peut être envisagée
  4. Ajout de filtres temporels: ajout d’une fenêtre de temps de transaction pour éviter les périodes d’inefficacité
  5. Indicateur de l’humeur des marchés: intégrer l’indicateur de l’humeur des marchés pour améliorer la précision des prévisions

Résumer

Il s’agit d’une stratégie intégrée conçue de manière rationnelle et logique. Grâce à la combinaison de plusieurs indicateurs et à la commutation des modes, une certaine adaptabilité peut être maintenue dans différents environnements de marché. Bien qu’il existe des risques potentiels, la stratégie a une bonne valeur d’application pratique grâce à un contrôle raisonnable des risques et à une optimisation continue.

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

//@version=5
strategy("Nifty/BankNifty Multi-Strategy v2", overlay=true, margin_long=100, margin_short=100)

// ———— Inputs ———— //
// Supertrend
atrPeriod = input.int(10, "ATR Period")
supertrendMultiplier = input.float(2.0, "Supertrend Multiplier", step=0.1)

// EMA
ema20Period = input.int(20, "20 EMA Period")
ema50Period = input.int(50, "50 EMA Period")

// ADX/DMI
adxThreshold = input.int(25, "ADX Trend Threshold")
adxLength = input.int(14, "ADX Length")

// RSI
rsiLength = input.int(14, "RSI Length")
rsiOverbought = input.int(70, "RSI Overbought")
rsiOversold = input.int(30, "RSI Oversold")

// Bollinger Bands
bbLength = input.int(20, "BB Length")
bbStdDev = input.float(2.0, "BB Std Dev", step=0.1)

// Stop-Loss
stopLossPerc = input.float(1.0, "Stop-Loss %", step=0.1)

// ———— Calculations ———— //
// Supertrend
[supertrend, direction] = ta.supertrend(supertrendMultiplier, atrPeriod)

// EMAs
ema20 = ta.ema(close, ema20Period)
ema50 = ta.ema(close, ema50Period)

// ADX via DMI (corrected)
[dip, din, adx] = ta.dmi(adxLength, adxLength) // ta.dmi(diLength, adxSmoothing)

// RSI
rsi = ta.rsi(close, rsiLength)

// Bollinger Bands
basis = ta.sma(close, bbLength)
upperBB = basis + ta.stdev(close, bbLength) * bbStdDev
lowerBB = basis - ta.stdev(close, bbLength) * bbStdDev

// VWAP
vwapValue = ta.vwap(hlc3)

// ———— Strategy Logic ———— //
trendingMarket = adx > adxThreshold

// Trend-Following Strategy
emaBullish = ema20 > ema50
priceAboveVWAP = close > vwapValue

longConditionTrend = trendingMarket and direction < 0 and emaBullish and priceAboveVWAP
shortConditionTrend = trendingMarket and direction > 0 and not emaBullish and close < vwapValue

// Range-Bound Strategy
priceNearLowerBB = close <= lowerBB
priceNearUpperBB = close >= upperBB

longConditionRange = not trendingMarket and priceNearLowerBB and rsi < rsiOversold
shortConditionRange = not trendingMarket and priceNearUpperBB and rsi > rsiOverbought

// ———— Entries/Exits ———— //
if (longConditionTrend or longConditionRange)
    strategy.entry("Long", strategy.long)
    stopPriceLong = strategy.position_avg_price * (1 - stopLossPerc / 100)
    strategy.exit("Exit Long", "Long", stop=stopPriceLong)

if (shortConditionTrend or shortConditionRange)
    strategy.entry("Short", strategy.short)
    stopPriceShort = strategy.position_avg_price * (1 + stopLossPerc / 100)
    strategy.exit("Exit Short", "Short", stop=stopPriceShort)

// Exit on Supertrend flip or RSI extremes
if (direction > 0 or rsi >= rsiOverbought)
    strategy.close("Long")

if (direction < 0 or rsi <= rsiOversold)
    strategy.close("Short")

// ———— Visualization ———— //
plot(supertrend, "Supertrend", color = direction < 0 ? color.green : color.red)
plot(ema20, "20 EMA", color.blue)
plot(ema50, "50 EMA", color.orange)
plot(vwapValue, "VWAP", color.purple)
plot(upperBB, "Upper BB", color.gray)
plot(lowerBB, "Lower BB", color.gray)