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