Stratégie de suivi de tendance dynamique ATR avec stop loss de Chande-Kroll

SMA ATR SPX
Date de création: 2024-06-14 15:15:43 Dernière modification: 2024-06-14 15:15:43
Copier: 0 Nombre de clics: 736
1
Suivre
1617
Abonnés

Stratégie de suivi de tendance dynamique ATR avec stop loss de Chande-Kroll

Aperçu

La stratégie de suivi de la tendance ATR de Chande-Kroll Stop Loss est une stratégie de trading quantitative basée sur l’indicateur de Stop Loss de Chande-Kroll et la moyenne mobile simple (SMA). La stratégie vise à capturer les tendances à la hausse du marché tout en utilisant les stop losses pour gérer les risques.

Principe de stratégie

Le cœur de cette stratégie est l’indicateur de stop-loss Chande-Kroll, qui utilise l’ATR pour calculer le niveau de stop-loss dynamique. L’ATR mesure la volatilité du marché, le niveau de stop-loss est ajusté en fonction de l’ATR et de la dynamique de multiplication. Cela garantit que la position de stop-loss est adaptée aux conditions actuelles du marché. Commencez à faire plus lorsque le cours de clôture franchit la trajectoire descendante de Chande-Kroll et dépasse la SMA de 21 cycles. Conditions de placement: placement à la clôture lorsque le prix de clôture tombe en dessous de la trajectoire de Chande-Kroll.

Avantages stratégiques

  1. Stop-loss dynamique: L’indicateur de stop-loss de Chande-Kroll est basé sur le calcul du niveau de stop-loss dynamique de l’ATR, qui peut s’adapter à différentes conditions de volatilité du marché et améliorer l’efficacité de la stop-loss.
  2. Suivi de la tendance: le SMA à 21 cycles sert de filtre de tendance pour s’assurer que les transactions sont conformes à la direction de la tendance principale et réduire le risque de trading à contre-courant.
  3. Flexibilité des paramètres: les paramètres de la stratégie, tels que le cycle ATR, le multiplicateur ATR, le cycle stop-loss et le cycle SMA, peuvent être ajustés en fonction des préférences de l’utilisateur pour améliorer l’adaptabilité de la stratégie.
  4. Gestion de la taille de la position: la taille de la position est ajustée dynamiquement en fonction du multiplicateur de risque et de la volatilité du marché actuel, ce qui permet une gestion dynamique du risque.

Risque stratégique

  1. Risque d’optimisation des paramètres: les paramètres de la stratégie doivent être optimisés en fonction des différentes conditions du marché et de la variété de transactions. Des paramètres mal configurés peuvent entraîner une mauvaise performance de la stratégie.
  2. Risque de détection de tendance: la stratégie peut générer de faux signaux et entraîner des pertes en cas de choc ou de revers de tendance.
  3. Points de glissement et coûts de transaction: dans les transactions réelles, les points de glissement et les coûts de transaction affectent le bénéfice net de la stratégie. Les mesures de gestion des risques comprennent: un retour complet de la stratégie et l’optimisation des paramètres; dans les transactions réelles, suivre strictement les règles de la stratégie et contrôler le risque de chaque transaction; évaluer régulièrement la performance de la stratégie et effectuer des ajustements si nécessaire.

Orientation de l’optimisation de la stratégie

  1. La stratégie actuelle consiste à faire des signaux multiples et peut être étendue à des transactions multiples pour saisir pleinement les opportunités dans différents environnements de marché.
  2. Optimisation dynamique des paramètres: utilisation d’algorithmes d’apprentissage automatique ou d’optimisation pour ajuster les paramètres de la stratégie en temps réel en fonction de la situation du marché, améliorant ainsi l’adaptabilité.
  3. Combiner d’autres indicateurs techniques: introduire d’autres indicateurs de type tendance ou de type choc, construire une stratégie multifactorielle, améliorer la fiabilité du signal.
  4. L’ajout d’indicateurs de sentiment de marché: en combinaison avec des indicateurs de sentiment de marché tels que VIX, il permet de contrôler les transactions en cas d’extrême émotion du marché et améliore la capacité de gestion des risques.

Résumer

La stratégie de suivi de la tendance ATR est une stratégie de négociation quantitative basée sur les principes de suivi de la tendance et de suivi de la tendance. Grâce à la combinaison de l’indicateur de stop loss Chande-Kroll et du filtre de tendance SMA, la stratégie est capable de gérer efficacement le risque tout en capturant la tendance à la hausse. La flexibilité des paramètres de la stratégie et l’ajustement dynamique de l’échelle de position améliorent encore l’adaptabilité de la stratégie.

Code source de la stratégie
/*backtest
start: 2023-06-08 00:00:00
end: 2024-06-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Chande Kroll Stop Strategy", overlay=true, initial_capital = 1000, commission_type = strategy.commission.percent, commission_value = 0.01, slippage = 3)

// Chande Kroll Stop parameters
calcMode = input.string(title="Calculation Mode", defval="Exponential", options=["Linear", "Exponential"])
riskMultiplier = input(5, "Risk Multiplier")
atrPeriod = input(10, "ATR Period")
atrMultiplier = input(3, "ATR Multiplier")
stopLength = input(21, "Stop Length")
smaLength = input(21, "SMA Length")

// Calculate ATR
atr = ta.atr(atrPeriod)

// Calculate Chande Kroll Stop
highStop = ta.highest(high, stopLength) - atrMultiplier * atr
lowStop = ta.lowest(low, stopLength) + atrMultiplier * atr

sma21 = ta.sma(close, smaLength)

// Entry and Exit conditions
longCondition = ta.crossover(close, lowStop) and close > sma21
exitLongCondition = close < highStop

// Funktion zur Berechnung der Menge
calc_qty(mode, riskMultiplier) =>
    lowestClose = ta.lowest(close, 1560)
    if mode == "Exponential"
        qty = riskMultiplier / lowestClose * 1000 * strategy.equity / strategy.initial_capital
    else
        qty = riskMultiplier / lowestClose * 1000

// Berechnung der Menge basierend auf der Benutzerwahl
qty = calc_qty(calcMode, riskMultiplier)

// Execute strategy
if (longCondition)
    strategy.entry("Long", strategy.long, qty=qty)
    alert("Buy Signal", alert.freq_once_per_bar_close)

if (exitLongCondition)
    strategy.close("Long")
    alert("Sell Signal", alert.freq_once_per_bar_close)

// Plotting
plotshape(series=longCondition, location=location.belowbar, color=#0097a7, style=shape.triangleup, size=size.small, title="Buy Signal")
plotshape(series=ta.crossunder(close, highStop), location=location.abovebar, color=#ff195f, style=shape.triangledown, size=size.small, title="Sell Signal")
plot(sma21, color=color.gray)
plot(highStop, color=#0097a7)
plot(lowStop, color=#ff195f)