
Strategi pelacakan tren Chande-Kroll Stop Loss Dynamic ATR adalah strategi perdagangan kuantitatif yang didasarkan pada indikator Stop Loss Chande-Kroll dan Simple Moving Average (SMA). Strategi ini dirancang untuk menangkap tren naik di pasar sambil menggunakan stop loss dinamis untuk mengelola risiko. Indikator Stop Loss Chande-Kroll menyesuaikan tingkat stop loss dinamis berdasarkan rata-rata gelombang nyata (ATR) untuk menyesuaikan dengan berbagai kondisi pasar yang bergejolak.
Inti dari strategi ini adalah indikator stop loss Chande-Kroll, yang menggunakan ATR untuk menghitung tingkat stop loss dinamis. ATR mengukur volatilitas pasar, dan tingkat stop loss disesuaikan dengan ATR dan dinamika perkalian. Ini memastikan bahwa posisi stop loss dapat disesuaikan dengan kondisi pasar saat ini. Kondisi over: Mulai over ketika harga close breaks Chande-Kroll downtrend dan di atas 21 siklus SMA. Kondisi posisi terdepan: posisi terdepan terjadi ketika harga close out jatuh di atas Chande-Kroll.
Strategi tracking tren ATR Chande-Kroll Stop Loss Dynamic adalah strategi perdagangan kuantitatif yang didasarkan pada prinsip tracking tren dan stop loss dinamis. Dengan kombinasi indikator stop loss Chande-Kroll dan filter tren SMA, strategi ini dapat secara efektif mengelola risiko sambil menangkap tren naik. Fleksibilitas parameter strategi dan penyesuaian dinamis skala posisi, meningkatkan lebih lanjut kemampuan adaptasi strategi.
/*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)