La valeur de l'échange de titres est la valeur de l'échange de titres.

Auteur:ChaoZhang est là., Date: 2024-01-29 15:52:43 Je suis désolé
Les étiquettes:

img

Résumé

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 logique de la stratégie

La stratégie se compose principalement des éléments suivants:

  1. 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
    
  2. 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   
    
  3. 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.

Analyse des avantages

Les avantages de cette stratégie sont les suivants:

  1. 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.

  2. 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.

  3. Ratio risque-rendement personnalisable

    Poursuivre des profits plus élevés avec un rapport risque-rendement prédéfini.

  4. Facile à comprendre et à étendre

    Structure simple, facile à comprendre et optimisée pour l'extension.

Analyse des risques

Cette stratégie peut présenter certains risques:

  1. Risques à double sens

    En tant que stratégie de négociation bidirectionnelle, elle comporte à la fois des risques à long terme et à court terme.

  2. 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.

  3. 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:

  1. 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.

  2. 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.

  3. Filtres supplémentaires

    Ajouter des filtres de volume ou de volatilité pour assurer la qualité des transactions.

Directions d'optimisation

Il y a encore de la place pour optimiser davantage la stratégie:

  1. 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.

  2. 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.

  3. 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.

  4. Commerce par algorithme

    Utilisez des moteurs de trading algorithmiques pour tester efficacement les stratégies et les échanges.

Conclusion

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!")


Plus de