Chiến lược siêu xu hướng
Tổng quan
Chiến lược SuperTrend là một chiến lược giao dịch theo xu hướng dựa trên chỉ báo ATR (Average True Range) để tính toán. Nó sử dụng ATR để thiết lập các đường dừng lỗ, xác định hướng xu hướng bằng cách kiểm tra xem giá có phá vỡ các đường dừng lỗ hay không, từ đó tạo ra tín hiệu giao dịch.
Nguyên lý chiến lược
Chiến lược này trước tiên tính toán chỉ báo ATR trong một khoảng thời gian nhất định. Sau đó, nó nhân giá trị ATR với hệ số tỷ lệ để tính toán đường dừng lỗ dài hạn và đường dừng lỗ ngắn hạn. Cách tính cụ thể như sau:
atr = mult * atr(length)
longStop = hl2 - atr
shortStop = hl2 + atr
Trong đó length là độ dài chu kỳ tính ATR, mult là hệ số tỷ lệ của ATR.
Sau khi tính toán các đường dừng lỗ, chiến lược liên tục kiểm tra xem giá có phá vỡ đường dừng lỗ của nến trước đó hay không để xác định hướng xu hướng:
dir := dir == -1 and close > shortStopPrev ? 1 :
dir == 1 and close < longStopPrev ? -1 : dir
Khi giá phá vỡ đường dừng lỗ dài hạn, xu hướng được coi là chuyển sang tăng; khi giá phá vỡ đường dừng lỗ ngắn hạn, xu hướng được coi là chuyển sang giảm.
Dựa trên sự thay đổi của hướng xu hướng, tín hiệu mua và bán được tạo ra:
buySignal = dir == 1 and dir[1] == -1
sellSignal = dir == -1 and dir[1] == 1
Cuối cùng, khi xuất hiện tín hiệu mua hoặc bán, các lệnh giao dịch tương ứng sẽ được thực hiện.
Ưu điểm của chiến lược
-
Sử dụng ATR để tính toán đường dừng lỗ, có thể lọc hiệu quả nhiễu thị trường và nắm bắt các tín hiệu xu hướng đáng tin cậy hơn.
-
Chiến lược có ít tham số, dễ hiểu và dễ vận hành. Chu kỳ ATR và hệ số nhân có thể được điều chỉnh để thích ứng với các môi trường thị trường khác nhau.
-
Sử dụng phương pháp phá vỡ đường dừng lỗ để xác định sự thay đổi xu hướng, có thể kiểm soát rủi ro hiệu quả và cắt lỗ kịp thời.
-
Có thể cấu hình giao dịch chỉ mua hoặc giao dịch hai chiều, phù hợp với nhiều phong cách giao dịch khác nhau.
-
Có thể sử dụng trên bất kỳ khung thời gian nào, phù hợp với nhiều loại sản phẩm giao dịch.
Rủi ro của chiến lược
-
Trong thị trường đi ngang (sideways), giá trị ATR có thể bị kéo lên cao, dẫn đến đường dừng lỗ quá rộng và tạo ra nhiều tín hiệu giả hơn.
-
Không thể xác định bộ tham số tối ưu; chu kỳ ATR và hệ số nhân cần được tối ưu hóa dựa trên điều kiện thị trường.
-
Không thể xác định khung thời gian giao dịch tối ưu cho từng sản phẩm giao dịch; cần phải thử nghiệm riêng cho từng loại sản phẩm.
-
Không thể xác định thời điểm vào lệnh tối ưu, tồn tại độ trễ nhất định.
-
Có rủi ro ở trạng thái không có vị thế (naked) khi xu hướng yếu, có thể dẫn đến bỏ lỡ cơ hội.
-
Có rủi ro bị phá vỡ mức dừng lỗ; cần nới lỏng đường dừng lỗ một cách hợp lý.
Hướng tối ưu hóa chiến lược
-
Có thể kết hợp với các chỉ báo khác để lọc, tránh tạo tín hiệu sai trong thị trường đi ngang. Ví dụ: MACD, RSI, v.v.
-
Có thể sử dụng học máy hoặc thuật toán di truyền để tìm bộ tham số tối ưu.
-
Có thể tối ưu hóa tham số cho từng loại sản phẩm giao dịch, xác định chu kỳ ATR và hệ số nhân tốt nhất.
-
Có thể kết hợp với các chỉ báo khối lượng (ví dụ: khối lượng giao dịch) để xác định thời điểm vào lệnh, tránh vào lệnh quá sớm.
-
Có thể xem xét áp dụng chiến lược khóa vị thế (lock position) để vẫn nắm giữ vị thế khi không có tín hiệu giao dịch.
-
Có thể nới rộng phạm vi dừng lỗ một cách hợp lý, kết hợp với các chỉ báo sức mạnh xu hướng để tối ưu hóa vị trí dừng lỗ.
Tổng kết
Chiến lược SuperTrend sử dụng ATR để tính toán các đường dừng lỗ động, xác định sự thay đổi xu hướng thông qua sự phá vỡ giá, thuộc loại chiến lược giao dịch theo xu hướng tương đối đáng tin cậy và có thể kiểm soát rủi ro. Chiến lược này đơn giản, dễ sử dụng, phù hợp với nhiều loại sản phẩm giao dịch, nhưng cần được tối ưu hóa về tham số và quy tắc chiến lược để đạt hiệu quả tốt hơn trên các thị trường khác nhau. Kết hợp với các chỉ báo kỹ thuật và chiến lược khác có thể mang lại hiệu suất giao dịch tốt hơn. Nhìn chung, chiến lược SuperTrend dựa trên khái niệm khoa học, đáng để các nhà giao dịch nghiên cứu và ứng dụng thêm.
/*backtest
start: 2023-09-12 00:00:00
end: 2023-10-12 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
// strategy("SuperTrend Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=1000)
LongOnly = input(title="Long Only ?", type=input.bool, defval=true)- 1
