
La stratégie ATR de gestion des risques dynamiques est un système de trading quantitatif basé sur la croisée des moyennes mobiles et des moyennes réelles. Elle identifie les signaux d’entrée par la croisée des moyennes mobiles simples (SMA) à court et à long terme, tout en utilisant l’ATR pour calculer les arrêts, les arrêts et le suivi des niveaux d’arrêt afin d’automatiser et de préciser la gestion des risques. La stratégie est conçue pour les comptes avec un capital initial de 25 000 \(, avec un profit cible de 4 167 \) par jour et pour équilibrer les gains et les risques grâce à un contrôle dynamique des positions.
Le principe central de cette stratégie est la combinaison de signaux croisés d’indicateurs techniques et d’un système de gestion dynamique des risques:
Signal d’entrée généré:
Calcul des paramètres de risque dynamique:
Le mécanisme de retrait:
Exécution et notification de la transaction:
Cette stratégie est particulièrement axée sur le rapport risque/bénéfice, avec un rapport bénéfice/risque de 3:1.5 (TP:SL), et suit les principes de la bonne gestion des risques.
Adaptation au risque dynamique:
Des règles claires d’entrée et de sortie:
Un cadre complet de gestion des risques:
Automatisation élevée:
Aide visuelle:
Faux signaux sur les marchés:
Sensitivité des paramètres ATR:
Risque d’inversion de tendance:
Le défi de la gestion des fonds:
Exécution des points de dérapage:
Optimisation des signaux d’entrée:
Adaptation des paramètres:
Optimisation de la gestion des positions:
Adaptation de la politique de fuseau horaire:
Analyse intégrée de la structure du marché:
La stratégie ATR de gestion des risques dynamiques est un système de négociation quantitative qui combine l’analyse technique classique et la gestion des risques modernes. Son avantage central réside dans l’adaptation des paramètres de risque via l’ATR dynamique, ce qui permet à la stratégie de s’adapter à différents environnements de marché. La stratégie est particulièrement adaptée aux marchés volatiles, relativement stables et à tendance évidente, générant des signaux de négociation par simple croisement des moyennes mobiles, tout en assurant que chaque transaction a des paramètres de contrôle des risques prédéfinis.
Bien qu’il existe des risques de faux signaux et de sensibilité des paramètres dans les marchés de choc, l’orientation d’optimisation proposée ci-dessus, comme l’intégration de mesures telles que des indicateurs de confirmation supplémentaires, l’ajustement des paramètres d’adaptation et l’optimisation de la gestion des positions, peut considérablement améliorer la stabilité et l’adaptabilité de la stratégie. En fin de compte, la stratégie fournit un cadre de négociation équilibrant la simplicité et l’efficacité, adapté au modèle de base de la négociation systématisée et pouvant être davantage personnalisé et optimisé en fonction des besoins individuels et des caractéristiques du marché.
/*backtest
start: 2024-07-17 00:00:00
end: 2025-07-15 08:00:00
period: 3d
basePeriod: 3d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":200000}]
*/
//@version=5
strategy("MYM Strategy for TradersPost", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// === Inputs ===
atrLength = input.int(14, "ATR Length")
slMultiplier = input.float(1.5, "Stop Loss Multiplier")
tpMultiplier = input.float(3.0, "Take Profit Multiplier")
tsMultiplier = input.float(1.0, "Trailing Stop Multiplier")
// === ATR Calculation ===
atr = ta.atr(atrLength)
stopPts = atr * slMultiplier
takePts = atr * tpMultiplier
trailPts = atr * tsMultiplier
// === Example Entry Logic (crossover example) ===
shortSMA = ta.sma(close, 14)
longSMA = ta.sma(close, 28)
longCondition = ta.crossover(shortSMA, longSMA)
shortCondition = ta.crossunder(shortSMA, longSMA)
// === Example Exit Condition (optional close signal) ===
exitCondition = ta.cross(close, ta.sma(close, 10))
// === Entry & Alerts ===
if (longCondition)
// Build JSON message
stopVal = str.tostring(close - stopPts)
tpVal = str.tostring(close + takePts)
trailVal = str.tostring(trailPts)
longMessage = '{"action":"buy","symbol":"MYM","quantity":1,"order_type":"market","stop_loss":' + stopVal + ',"take_profit":' + tpVal + ',"trailing_stop":' + trailVal + ',"comment":"MYM Long Entry"}'
alert(longMessage, alert.freq_once_per_bar_close)
strategy.entry("Long", strategy.long)
if (shortCondition)
stopVal = str.tostring(close + stopPts)
tpVal = str.tostring(close - takePts)
trailVal = str.tostring(trailPts)
shortMessage = '{"action":"sell","symbol":"MYM","quantity":1,"order_type":"market","stop_loss":' + stopVal + ',"take_profit":' + tpVal + ',"trailing_stop":' + trailVal + ',"comment":"MYM Short Entry"}'
alert(shortMessage, alert.freq_once_per_bar_close)
strategy.entry("Short", strategy.short)
// === Optional Close Alert ===
if (exitCondition)
closeMessage = '{"action":"close_position","ticker":"MYM","comment":"MYM Close Position"}'
alert(closeMessage, alert.freq_once_per_bar_close)
strategy.close_all(comment="Exit Signal")
// === Visual aids ===
plot(shortSMA, color=color.orange)
plot(longSMA, color=color.blue)