Chiến lược SuperTrend dựa trên ATR và trailing stop
Tổng quan
Chiến lược này thiết kế một đường dừng lỗ di động và đường đảo chiều dựa trên chỉ báo ATR (Average True Range). Nó sẽ trailing stop loss (dừng lỗ theo xu hướng) dựa trên biến động giá. Cụ thể, nếu giá thay đổi hơn 1%, đường dừng lỗ sẽ dịch chuyển theo hướng lợi nhuận với một tỷ lệ cố định. Khi giá phá vỡ đường dừng lỗ, vị thế sẽ tự động được đóng lại. Điều này có thể khóa lợi nhuận, cũng như giảm thiểu thua lỗ.
Nguyên lý chiến lược
Chiến lược sử dụng chỉ báo ATR để tính toán đường dừng lỗ. Công thức cụ thể như sau:
atr = multplierFactor * atr(barsBack)
longStop = hl2 - atr
shortStop = hl2 + atr
Trong đó multplierFactor là hệ số khuếch đại ATR, barsBack là số chu kỳ ATR. Giá trị ATR càng lớn, biến động thị trường càng mạnh.
Dựa trên giá trị ATR, tính toán đường dừng lỗ cho vị thế mua (longStop) và vị thế bán (shortStop). Khi giá vượt qua hai đường này, tín hiệu giao dịch được phát ra.
Ngoài ra, chiến lược còn đưa vào biến direction để xác định xu hướng:
direction = 1
direction := nz(direction[1], direction)
direction := direction == -1 and close > shortStopPrev ? 1 : direction == 1 and close < longStopPrev ? -1 : direction
Nếu direction = 1 có nghĩa là xu hướng tăng, nếu direction = -1 là xu hướng giảm.
Dựa trên giá trị biến direction, sẽ vẽ đường dừng lỗ với màu sắc khác nhau:
if (direction == 1)
valueToPlot := longStop
colorToPlot := color.green
else
valueToPlot := shortStop
colorToPlot := color.red
Nhờ đó có thể thấy rõ xu hướng hiện tại và vị trí đường dừng lỗ.
Cơ chế trailing stop loss
Điểm mấu chốt của chiến lược này là cơ chế trailing stop loss, cho phép điều chỉnh đường dừng lỗ theo thời gian thực dựa trên diễn biến giá.
Logic cụ thể như sau:
strategyPercentege = (close - updatedEntryPrice) / updatedEntryPrice * 100.00
rideUpStopLoss = hasOpenTrade() and strategyPercentege > 1
if (rideUpStopLoss)
stopLossPercent := stopLossPercent + strategyPercentege - 1.0
newStopLossPrice = updatedEntryPrice + (updatedEntryPrice * stopLossPercent) / 100
stopLossPrice := max(stopLossPrice, newStopLossPrice)
updatedEntryPrice := stopLossPrice
Nếu giá tăng hơn 1% so với giá vào lệnh, đường dừng lỗ sẽ được điều chỉnh lên trên. Mức điều chỉnh là phần vượt quá 1%.
Điều này cho phép khóa thêm lợi nhuận, đồng thời giảm thiểu thua lỗ.
Phân tích ưu điểm
So với các chiến lược dừng lỗ di động truyền thống, ưu điểm lớn nhất của chiến lược này là có thể điều chỉnh đường dừng lỗ một cách linh hoạt theo điều kiện thị trường. Cụ thể:
-
Khóa lợi nhuận cao hơn trong xu hướng mạnh
Cơ chế trailing stop loss cho phép đường dừng lỗ liên tục dịch chuyển theo hướng có lợi nhuận, nhờ đó có thể khóa được lợi nhuận cao hơn khi thị trường tiếp tục tăng mạnh.
-
Giảm thiểu việc bị quét dừng lỗ trong vùng tích lũy
Khi xu hướng thị trường thay đổi, đường dừng lỗ di động cố định dễ bị nhảy qua. Trong khi đó, đường dừng lỗ của chiến lược này được tính toán dựa trên biến động thị trường, có thể theo dõi biến động giá một cách hợp lý, tránh bị quét dừng lỗ trong vùng tích lũy.
-
Thao tác đơn giản, dễ dàng tự động hóa
Chiến lược hoàn toàn dựa trên tính toán chỉ báo, không có logic xác định xu hướng phức tạp. Có thể triển khai giao dịch tự động rất đơn giản.
-
Có thể tùy chỉnh tham số, phù hợp với nhiều loại tài sản
Các tham số như chu kỳ ATR, hệ số khuếch đại, mức dừng lỗ đều có thể tùy chỉnh, cho phép tối ưu hóa cho từng loại tài sản khác nhau, giúp chiến lược có tính phổ quát cao hơn.
Phân tích rủi ro
Mặc dù chiến lược này có nhiều ưu điểm, nhưng vẫn cần lưu ý các rủi ro sau:
-
Không thể xác định điểm đảo chiều xu hướng, có rủi ro mua đỉnh bán đáy
Chiến lược không có logic xác định khi nào xu hướng kết thúc. Vào cuối thị trường tăng, dễ xảy ra tình trạng mua đỉnh bán đáy.
-
Cài đặt tham số không phù hợp có thể mở rộng thua lỗ
Nếu chu kỳ ATR được đặt quá ngắn, đường dừng lỗ sẽ quá nhạy, có thể bị kích hoạt thường xuyên trong thị trường dao động.
-
Có rủi ro bị dừng lỗ khi bắt đáy hồi phục
Chiến lược này không xem xét các điểm phân kỳ làm điểm hỗ trợ dừng lỗ. Do đó, trong các đợt hồi phục ngắn, có thể bị thoát khỏi thị trường.
Để đối phó với các rủi ro trên, có thể tối ưu hóa từ các khía cạnh sau:
-
Kết hợp với chỉ báo lọc xu hướng, dự báo sớm sự đảo chiều xu hướng
-
Kiểm tra tối ưu hóa tham số, chọn ra tổ hợp tham số tối ưu
-
Mở rộng phạm vi dừng lỗ gần các vùng hỗ trợ cụ thể
Hướng tối ưu hóa
Chiến lược này còn có thể được tối ưu hóa thêm:
-
Kết hợp nhận dạng mô hình nến
Có thể nhận diện một số mô hình nến điển hình như divergence (phân kỳ), shooting star (sao băng) để đánh giá khả năng đảo chiều xu hướng. Điều này giúp tránh rủi ro mua đỉnh bán đáy.
-
Tối ưu hóa tham số động
Có thể cho phép chu kỳ ATR, hệ số khuếch đại… thay đổi linh hoạt, sử dụng chu kỳ ATR dài hơn và phạm vi dừng lỗ rộng hơn trong thị trường biến động mạnh.
-
Kết hợp mô hình học máy
Sử dụng các mô hình học sâu như LSTM, RNN để dự đoán khoảng giá có thể xảy ra trong tương lai, từ đó điều chỉnh khoảng cách dừng lỗ một cách linh hoạt.
Tổng kết
Chiến lược này nhìn chung sử dụng chỉ báo ATR để thiết kế đường dừng lỗ di động, đồng thời đưa vào cơ chế trailing stop loss, cho phép điều chỉnh vị trí dừng lỗ theo thời gian thực dựa trên diễn biến thị trường. Điều này mang lại khả năng khóa lợi nhuận cao hơn, đồng thời giảm thiểu rủi ro. Thông qua các bước tối ưu hóa tiếp theo, chiến lược này có thể thích ứng tốt hơn với nhiều tình huống thị trường khác nhau, trở thành một chiến lược giao dịch có tính phổ quát cao.
/*backtest
start: 2022-11-21 00:00:00
end: 2023-11-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//
// ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
// ------------------------------------------------------------------------------ 1

