Chiến lược giao dịch định lượng dựa trên chỉ số phân tích xu hướng


Ngày tạo: 2023-12-12 10:40:52 sửa đổi lần cuối: 2023-12-12 10:40:52
sao chép: 0 Số nhấp chuột: 595
1
tập trung vào
1621
Người theo dõi

Chiến lược giao dịch định lượng dựa trên chỉ số phân tích xu hướng

Tổng quan

Ý tưởng cốt lõi của chiến lược này là sử dụng độ lệch của trung bình di chuyển để đánh giá xu hướng thị trường, xây dựng chỉ số phân tích xu hướng (Trend Analysis Index, TAI) làm tín hiệu giao dịch. Khi giá chạy trong xu hướng, độ lệch trung bình di chuyển tăng; khi giá dao động trong một khu vực không có xu hướng rõ ràng, độ lệch trung bình di chuyển giảm.

Nguyên tắc chiến lược

Chiến lược này đầu tiên tính toán đường trung bình di chuyển đơn giản của giá (X-day moving average). Sau đó, tính toán đường trung bình di chuyển với giá cao nhất và giá thấp nhất trong ngày qua Y, và tính toán đường trung bình di chuyển trong ngày qua Y. Cuối cùng, bằng cách so sánh đường trung bình di chuyển trong ngày Y với giá, chuyển đổi thành chỉ số chuẩn hóa giữa 0-1 để xây dựng chỉ số phân tích xu hướng.

Phân tích lợi thế

Chiến lược này có những lợi thế sau:

  1. Kiểm tra xu hướng hoạt động thông qua độ lệch của đường trung bình di chuyển, có thể nắm bắt hiệu quả xu hướng đường dài
  2. Kết hợp với tiêu chuẩn hóa phạm vi biến động, xây dựng chỉ số chỉ số để làm rõ hơn tín hiệu giao dịch
  3. Các tham số chuyển động có thể tùy chỉnh và các tham số đánh giá xu hướng để phù hợp với môi trường thị trường khác nhau
  4. Có thể chọn giao dịch ngược, có thể được sử dụng để theo dõi hoặc chống đỡ các chiến lược khác

Phân tích rủi ro

Chiến lược này cũng có những rủi ro:

  1. Trong quá trình kiểm tra, các tín hiệu có thể bị lỗi.
  2. Thiết lập tham số trung bình di chuyển không đúng có thể bỏ lỡ điểm chuyển hướng
  3. Thiết lập tham số tiêu chuẩn hóa không đúng có thể bỏ lỡ xu hướng yếu hơn
  4. Lợi nhuận có thể tăng lên khi giao dịch ngược

Giải pháp tương ứng:

  1. Kết hợp các chỉ số khác để lọc tín hiệu
  2. Tối ưu hóa các tham số, tìm các tham số kết hợp tốt nhất
  3. Điều chỉnh các tham số tiêu chuẩn hóa
  4. Cẩn thận sử dụng tính năng giao dịch ngược

Hướng tối ưu hóa

Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:

  1. Kết hợp với các chỉ số khác để đánh giá xu hướng, chẳng hạn như kênh BOLL, để tín hiệu giao dịch đáng tin cậy hơn
  2. Thêm chiến lược dừng lỗ để kiểm soát tổn thất đơn
  3. Tối ưu hóa các tham số ngày của trung bình di chuyển để phù hợp hơn với các đặc điểm của thị trường trong các chu kỳ khác nhau
  4. Đào tạo các tham số chuẩn hóa tối ưu, tìm các ngưỡng tham số tối ưu
  5. Thêm mô hình học máy dự đoán xác suất xu hướng, hỗ trợ giao dịch

Tóm tắt

Chiến lược này nói chung là một chiến lược đường dài trung bình để đánh giá xu hướng thông qua độ lệch trung bình di chuyển, có thể nắm bắt được xu hướng một cách hiệu quả, nhưng cũng có một số rủi ro tín hiệu giả. Bằng cách sử dụng với các chỉ số khác, thêm lệnh dừng, tối ưu hóa tham số, các phương tiện khác có thể làm cho chiến lược trở nên ổn định và đáng tin cậy hơn, về cơ bản vẫn là một chiến lược theo dõi xu hướng đơn giản hơn.

Mã nguồn chiến lược
//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 21/12/2017
// In essence, it is simply the standard deviation of the last x bars of a 
// y-bar moving average. Thus, the TAI is a simple trend indicator when prices 
// trend with authority, the slope of the moving average increases, and when 
// prices meander in a trendless range, the slope of the moving average decreases.
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Trend Analysis Index", shorttitle="TAI")
AvgLen = input(28, minval=1)
TAILen = input(5, minval=1)
TopBand = input(0.11, step=0.01)
LowBand = input(0.02, step=0.01)
reverse = input(false, title="Trade reverse")
hline(TopBand, color=red, linestyle=line)
hline(LowBand, color=green, linestyle=line)
xPrice = close
xSMA = sma(xPrice, AvgLen)
xHH = highest(xSMA, TAILen)
xLL = lowest(xSMA, TAILen)
nRes = (xHH - xLL) * 100 / xPrice
pos = iff(nRes > TopBand, 1,
       iff(nRes < LowBand, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(nRes, color=blue, title="TAI")