Système de trading de filtrage composite RSI/ATR et de croisement de moyenne mobile double basé sur un ajustement de volatilité dynamique

MA RSI ATR RR SL TP SMA
Date de création: 2025-02-21 11:58:43 Dernière modification: 2025-02-21 11:58:43
Copier: 1 Nombre de clics: 390
2
Suivre
319
Abonnés

Système de trading de filtrage composite RSI/ATR et de croisement de moyenne mobile double basé sur un ajustement de volatilité dynamique Système de trading de filtrage composite RSI/ATR et de croisement de moyenne mobile double basé sur un ajustement de volatilité dynamique

Aperçu de la stratégie

Cette stratégie est un système de trading complexe qui combine la croisée des deux lignes, l’overtrait RSI et le filtrage des fluctuations ATR. Le système génère des signaux de négociation en utilisant des moyennes mobiles à court et à long terme, filtre l’état du marché à l’aide de l’indicateur RSI, utilise l’indicateur ATR pour juger de la volatilité et gère les positions et les risques en combinant le pourcentage de stop-loss et le rapport de risque-gain. La stratégie a une forte adaptabilité et peut ajuster les paramètres de manière flexible en fonction de l’environnement du marché.

Principe de stratégie

La logique fondamentale de la stratégie repose sur les aspects suivants :

  1. Génération de signaux: utilisation de la croisée des moyennes mobiles simples des 9e et 21e jours pour capturer les changements de tendance. Des signaux de plus sont générés lorsque la moyenne à court terme traverse la moyenne à long terme et des signaux de moins lorsqu’elle traverse la moyenne à court terme.
  2. Filtrage conditionnel: filtrez les sur-achats et les sur-vente par l’indicateur RSI pour éviter d’entrer dans des conditions de marché extrêmes. En utilisant l’indicateur ATR, assurez-vous que la volatilité du marché répond aux conditions de négociation.
  3. Gestion des risques: utilisation d’un pourcentage de stop loss basé sur la valeur nette du compte, détermination de la position d’arrêt par la définition d’un rapport risque/bénéfice, réalisation d’un bénéfice raisonnable tout en couvrant les risques.

Avantages stratégiques

  1. Le système est très adaptable: les stratégies peuvent être adaptées de manière flexible en fonction des différentes conditions du marché en activant ou désactivant les filtres RSI et ATR.
  2. Contrôle des risques: le pourcentage de stop-loss et la gestion dynamique des positions permettent de contrôler efficacement les marges de risque de chaque transaction.
  3. La fiabilité du signal est élevée: grâce à des mécanismes de filtrage multiples, l’impact des faux signaux est réduit et le taux de réussite des transactions est amélioré.
  4. Les paramètres peuvent être ajustés de manière optimale en fonction des caractéristiques du marché.

Risque stratégique

  1. Risque de choc du marché: dans les marchés de choc horizontal, les croisements de ligne moyenne peuvent générer de fréquents faux signaux.
  2. Risque de retard: les moyennes mobiles ont un certain retard et risquent de manquer le meilleur moment d’entrée.
  3. Risque d’optimisation des paramètres: une optimisation excessive des paramètres peut entraîner une suradaptation de la stratégie et affecter la performance du disque réel.
  4. Dépendance des conditions du marché: les stratégies fonctionnent mieux dans les marchés où la tendance est évidente et peuvent être moins efficaces dans d’autres environnements.

Orientation de l’optimisation de la stratégie

  1. Ajustement des paramètres dynamiques: les périodes de la moyenne et les valeurs de la limite du RSI peuvent être ajustées automatiquement en fonction des fluctuations du marché.
  2. Augmenter le filtre de force de tendance: introduire des indicateurs tels que le DMI ou l’ADX pour évaluer la force de la tendance.
  3. Optimisation de l’arrêt des pertes: l’utilisation d’un arrêt de suivi ou d’un arrêt dynamique basé sur l’ATR peut être envisagée.
  4. Amélioration de la gestion des positions: mise en place d’un système de gestion dynamique des positions basé sur la volatilité.

Résumer

La stratégie, en combinant plusieurs indicateurs techniques, construit un système de négociation relativement complet. La stratégie est excellente dans les marchés tendanciels et possède une bonne capacité de contrôle des risques. La stratégie peut s’adapter à différents environnements de marché en réglant raisonnablement les paramètres et en ajoutant les conditions de filtrage nécessaires.

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

//@version=5
strategy("Simplified MA Crossover Strategy with Disable Options", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// Inputs
shortLength = input.int(9, title="Short MA Length", minval=1)
longLength = input.int(21, title="Long MA Length", minval=1)

// RSI Filter
enableRSI = input.bool(true, title="Enable RSI Filter")
rsiLength = input.int(14, title="RSI Length", minval=1)
rsiOverbought = input.int(70, title="RSI Overbought Level", minval=50, maxval=100)
rsiOversold = input.int(30, title="RSI Oversold Level", minval=0, maxval=50)

// ATR Filter
enableATR = input.bool(true, title="Enable ATR Filter")
atrLength = input.int(14, title="ATR Length", minval=1)
minATR = input.float(0.005, title="Minimum ATR Threshold", minval=0)

// Risk Management
stopLossPerc = input.float(0.5, title="Stop Loss (%)", minval=0.1) / 100
riskRewardRatio = input.float(2, title="Risk-Reward Ratio", minval=1)
riskPercentage = input.float(2, title="Risk Percentage", minval=0.1) / 100

// Indicators
shortMA = ta.sma(close, shortLength)
longMA = ta.sma(close, longLength)
rsi = ta.rsi(close, rsiLength)
atr = ta.atr(atrLength)

// Conditions
longCondition = ta.crossover(shortMA, longMA)
shortCondition = ta.crossunder(shortMA, longMA)

// Apply RSI Filter (if enabled)
if (enableRSI)
    longCondition := longCondition and rsi < rsiOverbought
    shortCondition := shortCondition and rsi > rsiOversold

// Apply ATR Filter (if enabled)
if (enableATR)
    longCondition := longCondition and atr > minATR
    shortCondition := shortCondition and atr > minATR

// Risk Management
positionSize = strategy.equity * riskPercentage / (stopLossPerc * close)
takeProfitLevel = strategy.position_avg_price * (1 + stopLossPerc * riskRewardRatio)
stopLossLevel = strategy.position_avg_price * (1 - stopLossPerc)

// Execute Trades
if (longCondition)
    strategy.entry("Long", strategy.long, qty=positionSize)
    strategy.exit("Take Profit/Stop Loss", "Long", limit=takeProfitLevel, stop=stopLossLevel)

if (shortCondition)
    strategy.entry("Short", strategy.short, qty=positionSize)
    strategy.exit("Take Profit/Stop Loss", "Short", limit=strategy.position_avg_price * (1 - stopLossPerc * riskRewardRatio), stop=strategy.position_avg_price * (1 + stopLossPerc))

// Plotting
plot(shortMA, color=color.blue, title="Short MA")
plot(longMA, color=color.red, title="Long MA")
hline(rsiOverbought, "Overbought", color=color.red)
hline(rsiOversold, "Oversold", color=color.green)
plot(atr, color=color.orange, title="ATR")
plotshape(series=longCondition, title="Long Entry", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, title="Short Entry", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")