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

Tác giả:ChaoZhang, Ngày: 2023-12-12 10:40:52
Tags:

img

Tổng quan

Ý tưởng cốt lõi của chiến lược này là sử dụng độ nghiêng của trung bình động để đánh giá xu hướng thị trường và xây dựng Chỉ số Phân tích Xu hướng (TAI) như một tín hiệu giao dịch. Khi giá đang có xu hướng, độ nghiêng của trung bình động tăng. Khi giá đang dao động trong một khu vực không có xu hướng, độ nghiêng của trung bình động giảm. Sự gia tăng của Chỉ số Phân tích Xu hướng cho thấy sự bắt đầu của một xu hướng trong khi sự giảm có nghĩa là sự kết thúc của xu hướng.

Chiến lược logic

Chiến lược đầu tiên tính toán Trung bình di chuyển đơn giản (MA ngày X) của giá. Sau đó nó tính toán giá trị cao nhất và thấp nhất của trung bình di chuyển này trong Y ngày cuối cùng để có được phạm vi biến động. Cuối cùng, bằng cách so sánh phạm vi ngày Y này với giá, nó chuyển đổi thành một chỉ số tiêu chuẩn giữa 0-1, cụ thể là Chỉ số Phân tích Xu hướng.

Phân tích lợi thế

Những lợi thế của chiến lược này là:

  1. Phát hiện hiệu quả xu hướng trung và dài hạn bằng cách đánh giá độ dốc của MA
  2. Xây dựng chỉ số tiêu chuẩn cho tín hiệu giao dịch rõ ràng hơn
  3. Các thông số MA và đánh giá xu hướng có thể tùy chỉnh cho các môi trường thị trường khác nhau
  4. Các giao dịch ngược có thể lựa chọn để theo dõi hoặc bảo hiểm các chiến lược khác

Phân tích rủi ro

Ngoài ra còn có một số rủi ro:

  1. Có xu hướng nhận tín hiệu sai trong thị trường giới hạn phạm vi
  2. Điểm đảo ngược xu hướng bị thiếu nếu các thông số MA được thiết lập không phù hợp
  3. Không có xu hướng yếu nếu các thông số chuẩn hóa được thiết lập không phù hợp
  4. Lợi nhuận tăng khi giao dịch ngược

Giải pháp:

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

Hướng dẫn tối ưu hóa

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

  1. Kết hợp các chỉ số khác như BOLL để làm cho tín hiệu đáng tin cậy hơn
  2. Thêm stop loss để kiểm soát single loss
  3. Tối ưu hóa ngày MA để phù hợp với các đặc điểm trong các khung thời gian khác nhau
  4. Các thông số ngưỡng tối ưu của tàu
  5. Thêm mô hình ML cho xác suất xu hướng để hỗ trợ giao dịch

Kết luận

Tóm lại, đây là một chiến lược theo xu hướng trung hạn đến dài hạn dựa trên độ dốc của đường trung bình động. Nó có thể nắm bắt hiệu quả xu hướng nhưng cũng có một số rủi ro tín hiệu sai. Bằng cách kết hợp với các chỉ số khác, thêm stop loss, tối ưu hóa tham số vv, chiến lược có thể mạnh mẽ hơn. Về cơ bản nó vẫn là một chiến lược theo dõi xu hướng đơn giản.


//@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")


Thêm nữa