
Chiến lược theo dõi xu hướng ATR của Chande-Kroll Stop Loss là một chiến lược giao dịch định lượng dựa trên chỉ số Stop Loss của Chande-Kroll và đường trung bình di chuyển đơn giản (SMA). Chiến lược này được thiết kế để nắm bắt xu hướng tăng của thị trường, đồng thời sử dụng dừng động để quản lý rủi ro. Chỉ số Stop Loss của Chande-Kroll điều chỉnh mức dừng động theo chiều dài sóng thực trung bình (ATR) để phù hợp với các biến động thị trường khác nhau.
Cốt lõi của chiến lược này là chỉ số dừng của Chande-Kroll, sử dụng ATR để tính toán mức dừng động. ATR đo lường sự biến động của thị trường, mức dừng được điều chỉnh theo ATR và động lực nhân. Điều này đảm bảo vị trí dừng phù hợp với điều kiện thị trường hiện tại. Bắt đầu thêm khi giá đóng cửa phá vỡ đường đi dưới Chande-Kroll và trên SMA 21 chu kỳ. Điều kiện giao dịch bằng phẳng: Khi giá đóng cửa giảm xuống đường trên của Chande-Kroll, giao dịch bằng phẳng.
Chiến lược theo dõi xu hướng ATR của Chande-Kroll Stop Loss Dynamic là một chiến lược giao dịch định lượng dựa trên các nguyên tắc theo dõi xu hướng và theo dõi xu hướng. Bằng cách kết hợp chỉ số dừng lỗ của Chande-Kroll và bộ lọc xu hướng SMA, chiến lược có thể quản lý rủi ro một cách hiệu quả trong khi nắm bắt xu hướng tăng. Tính linh hoạt của các tham số chiến lược và điều chỉnh động của quy mô vị trí, tiếp tục tăng cường khả năng thích ứng của chiến lược. Mặc dù có một số rủi ro trong chiến lược, chiến lược có thể đạt được lợi nhuận ổn định trong dài hạn thông qua các biện pháp quản lý rủi ro hợp lý và cải tiến tối ưu hóa liên tục.
/*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)