L'indicateur d'arrêt dynamique de Chande-Kroll est une stratégie de trading quantitative basée sur l'indicateur d'arrêt de Chande-Kroll et la moyenne mobile simple (SMA). La stratégie vise à capturer les tendances haussières du marché tout en gérant le risque en utilisant des niveaux de stop-loss dynamiques.
Le noyau de la stratégie est l'indicateur de stop de Chande-Kroll, qui utilise l'ATR pour calculer les niveaux de stop-loss dynamiques. L'ATR mesure la volatilité du marché et les niveaux de stop-loss sont ajustés dynamiquement en fonction de l'ATR et d'un multiplicateur. Cela garantit que les positions de stop-loss s'adaptent aux conditions actuelles du marché. Condition d'entrée longue: lorsque le prix de clôture dépasse la bande inférieure de Chande-Kroll et dépasse la SMA à 21 périodes, une position longue est ouverte. Condition de sortie: lorsque le prix de clôture tombe en dessous de la bande supérieure de Chande-Kroll, la position est fermée.
La stratégie de suivi de tendance dynamique de l'ATR est une stratégie de trading quantitative basée sur des principes de suivi de tendance et de suivi de tendance. En combinant l'indicateur d'arrêt de Chande-Kroll et le filtre de tendance SMA, la stratégie peut capturer les tendances à la hausse tout en gérant efficacement le risque. La flexibilité des paramètres de la stratégie et le dimensionnement dynamique des positions améliorent encore l'adaptabilité 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)