Chiến lược Breakout kênh động là một chiến lược theo xu hướng. Nó sử dụng chỉ số kênh Donchian để xác định động giá mua và bán đột phá, kết hợp chỉ số ATR để thiết lập các điểm dừng lỗ và đạt được tự động hóa hoàn toàn của việc tạo tín hiệu giao dịch và thoát lỗ dừng.
Kênh Donchian là một chỉ số kênh năng động tạo thành các dải trên và dưới bằng cách tính toán giá cao nhất và thấp nhất trong một khoảng thời gian nhất định trong quá khứ. Dải trên là giá cao nhất trong n khoảng thời gian qua, và dải dưới là giá thấp nhất trong n khoảng thời gian qua. Kênh Donchian phản ánh phạm vi biến động và xu hướng tiềm năng của thị trường.
Chiến lược này đặt khoảng thời gian kênh Donchian lên 20 ngày. Khi giá vượt qua đường ray trên, một tín hiệu mua được tạo ra, cho thấy thị trường đã bước vào xu hướng tăng. Khi giá giảm xuống dưới đường ray dưới, một tín hiệu bán được tạo ra, cho thấy thị trường đã bước vào xu hướng giảm.
Chỉ số ATR là viết tắt của Average True Range, phản ánh mức biến động trung bình của một tài sản nhất định trong một khoảng thời gian gần đây. ATR có thể tự động thích nghi với những thay đổi về tần suất biến động thị trường để phản ánh chính xác hơn sự biến động thực tế của thị trường trong giai đoạn gần đây.
Chiến lược này sử dụng chỉ số ATR 20 ngày để tính điểm dừng lỗ. Giá trị ATR càng lớn, biến động thị trường càng lớn và điểm dừng lỗ càng xa. Điều này ngăn chặn điểm dừng lỗ quá gần và bị đánh bại bởi các biến động thị trường nhỏ.
Khi giá vượt qua đường giữa của kênh Donchian lên, một tín hiệu mua được tạo ra. Khi giá vượt qua đường giữa xuống, một tín hiệu bán được tạo ra. Điều này cho thấy giá đã bắt đầu vượt qua kênh này và bước vào một vòng mới của xu hướng.
Đồng thời, kết hợp với điểm dừng lỗ được tính bằng chỉ số ATR, khi lỗ đạt đến điểm dừng lỗ, vị trí sẽ được ngừng hoạt động để kiểm soát rủi ro.
Kênh Donchian là một chỉ số theo dõi xu hướng. Bằng cách điều chỉnh động phạm vi kênh, chiến lược này có thể tự động theo dõi những thay đổi trong xu hướng thị trường và tạo ra các tín hiệu mua và bán phù hợp. Điều này tránh tính chủ quan của phán đoán thủ công và làm cho các tín hiệu giao dịch khách quan và đáng tin cậy hơn.
Chiến lược bao gồm cả các quy tắc dài và ngắn, cho phép giao dịch hai chiều. Điều này mở rộng môi trường thị trường mà chiến lược có thể được áp dụng, cho phép lợi nhuận trong cả xu hướng tăng và giảm.
Cơ chế dừng lỗ của chỉ số ATR có thể kiểm soát hiệu quả sự mất mát của một giao dịch duy nhất. Điều này đặc biệt quan trọng đối với giao dịch định lượng để đảm bảo rằng các chiến lược đạt được lợi nhuận tích cực ổn định trong các sự kiện có xác suất cao.
Chiến lược kênh Donchian có một số rủi ro bị mắc kẹt. Nếu giá đảo ngược và quay trở lại kênh mà không có lỗ dừng, có thể có tổn thất đáng kể. Cơ chế dừng lỗ ATR trong chiến lược này giúp giảm thiểu rủi ro đó.
Khi xu hướng đảo ngược, chỉ số kênh Donchian sẽ tạo ra các tín hiệu sai. Người dùng cần chú ý đến điều kiện thị trường để tránh giao dịch mù khi sự đảo ngược xu hướng đáng kể xảy ra. Các chỉ số đánh giá xu hướng có thể được thêm vào để giảm rủi ro như vậy.
Các thông số thời gian của cả kênh Donchian và ATR cần được tối ưu hóa, nếu không có thể tạo ra các tín hiệu không chính xác quá mức. Các thông số trong chiến lược này là thực nghiệm. Trong giao dịch thực tế, chúng cần được tối ưu hóa dựa trên dữ liệu lịch sử.
Các chỉ số đánh giá xu hướng như trung bình động có thể được thêm vào để tránh các tín hiệu sai ở các điểm chuyển hướng quan trọng.
Tối ưu hóa các tham số kênh Donchian và ATR để tìm sự kết hợp tốt nhất.
Kết hợp các chỉ số phán đoán phụ khác như mô hình nến và thay đổi khối lượng giao dịch để cải thiện độ chính xác tín hiệu và giảm các giao dịch đảo ngược không cần thiết.
Chiến lược Breakout kênh năng động xác định hướng xu hướng thông qua các dải trên và dưới của kênh Donchian và tạo ra tín hiệu giao dịch. Cơ chế dừng lỗ ATR kiểm soát rủi ro. Chiến lược này có mức độ tự động cao và phù hợp với giao dịch định lượng.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title = "dc", overlay = true) atrLength = input(title="ATR Length:", defval=20, minval=1) testStartYear = input(2018, "Backtest Start Year") testStartMonth = input(1, "Backtest Start Month") testStartDay = input(1, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testEndYear = input(2018, "Backtest Start Year") testEndMonth = input(12) testEndDay = input(31, "Backtest Start Day") testPeriodEnd = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testPeriod() => true //time >= testPeriodStart ? true : false dcPeriod = input(20, "Period") dcUpper = highest(close, dcPeriod)[1] dcLower = lowest(close, dcPeriod)[1] dcAverage = (dcUpper + dcLower) / 2 atrValue=atr(atrLength) useTakeProfit = na useStopLoss = na useTrailStop = na useTrailOffset = na Buy_stop = lowest(low[1],3) - atr(20)[1] / 3 plot(Buy_stop, color=red, title="buy_stoploss") Sell_stop = highest(high[1],3) + atr(20)[1] / 3 plot(Sell_stop, color=green, title="sell_stoploss") plot(dcLower, style=line, linewidth=3, color=red, offset=1) plot(dcUpper, style=line, linewidth=3, color=aqua, offset=1) plot(dcAverage, color=yellow, style=line, linewidth=3, title="Mid-Line Average") strategy.entry("simpleBuy", strategy.long, when=(close > dcAverage) and cross(close,dcAverage)) strategy.close("simpleBuy",when=((close < dcAverage) and cross(close,dcAverage)) or ( close< Buy_stop)) strategy.entry("simpleSell", strategy.short,when=(close < dcAverage) and cross(close,dcAverage) ) strategy.close("simpleSell",when=((close > dcAverage) and cross(close,dcAverage)) or ( close > Sell_stop)) //strategy.exit("Exit simpleBuy", from_entry = "simpleBuy", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset) //strategy.exit("Exit simpleSell", from_entry = "simpleSell", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)