Cette stratégie adopte l'idée d'un arrêt dynamique basé sur l'ATR et les extrêmes de prix pour calculer les lignes d'arrêt-perte longues et courtes. Combinée à l'idée de la sortie de l'éclair, elle juge la direction longue / courte en fonction de la rupture de la ligne d'arrêt-perte. Lorsque la ligne d'arrêt-perte se démarque vers le haut, elle est jugée haussière et longue entrée. Lorsque la ligne d'arrêt-perte se démarque vers le bas, elle est jugée baissière et courte entrée.
La stratégie comporte à la fois des fonctionnalités de gestion du stop-loss et de jugement des signaux d'entrée.
La stratégie se compose principalement des éléments suivants:
Calculer les lignes de stop-loss longues/courtes sur la base de l'ATR
En fonction de la durée de la période ATR définie par l'utilisateur et du multiplicateur multiples, l'ATR en temps réel est calculé.
longStop = Highest - ATR
shortStop = Lowest + ATR
Jugez la direction de la négociation par rupture
Comparer les lignes de stop-loss entre la barre précédente et la barre actuelle.
Long stop-loss line breakout upwards, long entry
Short stop-loss line breakout downwards, short entry
Définir un stop-loss et un profit sur la base du ratio risque-rendement
Le montant de l'impôt sur les sociétés est calculé à partir de la valeur de l'impôt sur les sociétés et de l'impôt sur les sociétés. L'ordre stop loss et l'ordre take profit sont définis lors de l'ouverture de positions.
Les avantages de cette stratégie sont les suivants:
Définition de l'indicateur de risque
L'adoption de lignes de stop loss dynamiques permet d'arrêter les pertes en temps opportun et de contrôler le risque à la baisse.
Fonctions doubles
La ligne de stop loss sert à la fois d'outil de gestion de stop loss et de juge des conditions d'entrée, réduisant la complexité de la stratégie.
Ratio risque-rendement personnalisable
Poursuivre des profits plus élevés avec un rapport risque-rendement prédéfini.
Facile à comprendre et à étendre
Structure simple, facile à comprendre et optimisée pour l'extension.
Cette stratégie peut présenter certains risques:
Risques à double sens
En tant que stratégie de négociation bidirectionnelle, elle comporte à la fois des risques à long terme et à court terme.
Dépendance du paramètre ATR
Les paramètres ATR ont une incidence directe sur les lignes de stop loss et la fréquence de négociation.
Adaptabilité à la tendance
La stratégie s'adapte mieux pour les scénarios de plage avec des ruptures soudaines.
Les optimisations pour faire face aux risques susmentionnés sont les suivantes:
Incorporer des indicateurs de tendance
Incorporer des indicateurs de MA et d'autres indicateurs de tendance pour déterminer la tendance du marché, éviter les transactions contre tendance.
Optimisation des paramètres
Optimiser les combinaisons de paramètres ATR et de rapport risque-rendement pour un stop loss et un profit plus raisonnables.
Filtres supplémentaires
Ajouter des filtres de volume ou de volatilité pour assurer la qualité des transactions.
Il y a encore de la place pour optimiser davantage la stratégie:
Incorporer l'apprentissage automatique
Adopter des modèles d'apprentissage automatique pour prédire la tendance des prix afin d'obtenir une plus grande précision d'entrée.
Construire un portefeuille sans risque avec des options
Utiliser les options pour couvrir les fluctuations de prix des actifs sous-jacents et construire des portefeuilles d'arbitrage sans risque.
Arbitrage multi-actifs sur le marché
Effectuer un arbitrage statistique sur différents marchés et classes d'actifs afin d'obtenir un alpha stable.
Commerce par algorithme
Utilisez des moteurs de trading algorithmiques pour tester efficacement les stratégies et les échanges.
Cet article analyse en profondeur une stratégie de trading quantitative basée sur le stop loss dynamique. La stratégie possède simultanément une fonctionnalité de gestion des stop loss et une détermination des signaux de trading, qui contrôle efficacement les risques. Nous avons également discuté des avantages, des risques potentiels et des optimisations futures de la stratégie. C'est une stratégie de trading très pratique qui mérite d'être étudiée et appliquée.
/*backtest start: 2023-12-29 00:00:00 end: 2024-01-28 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Chandelier Exit with 1-to-1 Risk-Reward", shorttitle='CE', overlay=true) // Chandelier Exit Logic length = input.int(title='ATR Period', defval=22) mult = input.float(title='ATR Multiplier', step=0.1, defval=3.0) useClose = input.bool(title='Use Close Price for Extremums', defval=true) atr = mult * ta.atr(length) longStop = (useClose ? ta.highest(close, length) : ta.highest(length)) - atr longStopPrev = nz(longStop[1], longStop) longStop := close[1] > longStopPrev ? math.max(longStop, longStopPrev) : longStop shortStop = (useClose ? ta.lowest(close, length) : ta.lowest(length)) + atr shortStopPrev = nz(shortStop[1], shortStop) shortStop := close[1] < shortStopPrev ? math.min(shortStop, shortStopPrev) : shortStop var int dir = 1 dir := close > shortStopPrev ? 1 : close < longStopPrev ? -1 : dir // Risk-Reward Ratio riskRewardRatio = input.int(1, title="Risk-Reward Ratio", minval=1, maxval=10, step=1) // Calculate Take Profit and Stop Loss Levels takeProfitLevel = atr * riskRewardRatio stopLossLevel = atr // Entry Conditions longCondition = dir == 1 and dir[1] == -1 shortCondition = dir == -1 and dir[1] == 1 // Entry Signals if (longCondition) strategy.entry("Long", strategy.long, stop=close - stopLossLevel, limit=close + takeProfitLevel) if (shortCondition) strategy.entry("Short", strategy.short, stop=close + stopLossLevel, limit=close - takeProfitLevel) longStopPlot = plot(dir == 1 ? longStop : na, title='Long Stop', style=plot.style_linebr, linewidth=2, color=color.green) shortStopPlot = plot(dir == 1 ? na : shortStop, title='Short Stop', style=plot.style_linebr, linewidth=2, color=color.red) midPricePlot = plot(ohlc4, title='', style=plot.style_circles, linewidth=0, display=display.none, editable=false) fill(midPricePlot, longStopPlot, color=color.new(color.green, 90), title='Long State Filling') fill(midPricePlot, shortStopPlot, color=color.new(color.red, 90), title='Short State Filling') // Alerts if (dir != dir[1]) strategy.entry("Direction Change", strategy.long, comment="Chandelier Exit has changed direction!") if (longCondition) strategy.entry("Buy Signal", strategy.long, comment="Chandelier Exit Buy!") if (shortCondition) strategy.entry("Sell Signal", strategy.short, comment="Chandelier Exit Sell!")