Chiến lược lượng tử dựa trên cắt đứt hồi quy tuyến tính

Tác giả:ChaoZhang, Ngày: 2023-12-29 11:45:20
Tags:

img

Tổng quan

Chiến lược này sử dụng các kỹ thuật hồi quy tuyến tính để tính toán đường cắt hồi quy tuyến tính và sử dụng nó như một tín hiệu giao dịch để xây dựng một chiến lược giao dịch định lượng. Bằng cách phân tích chuỗi thời gian giá của cổ phiếu, chiến lược này phù hợp với đường xu hướng hồi quy tuyến tính và sử dụng đường cắt hồi quy tuyến tính để đánh giá giá liệu giá có được đánh giá quá cao hay thấp, do đó tạo ra các tín hiệu giao dịch.

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

Phân đoạn hồi quy tuyến tính chỉ ra giá trị dự đoán của Y (thường là giá) khi giá trị chuỗi thời gian X là 0. Chiến lược này đặt trước tham số Length, lấy giá đóng cửa làm chuỗi nguồn và tính toán phân đoạn hồi quy tuyến tính (xLRI) của các ngày Length gần đây nhất. Khi giá đóng cửa cao hơn xLRI, đi dài; khi giá đóng cửa thấp hơn xLRI, đi ngắn.

Công thức tính toán cụ thể là như sau:

xX = Length *(Length - 1)* 0.5
xDivisor = xX *xX - Length* Length *(Length - 1) *(2 * Length - 1) / 6  
xXY = Σ(i *Closing Price[i]), i from 0 to Length-1
xSlope = (Length *xXY - xX* Σ(Closing Price, Length))/ xDivisor 
xLRI = (Σ(Closing Price, Length) - xSlope * xX) / Length

Thông qua các tính toán như vậy, các đường ngược tuyến tính ngắt xLRI cho các ngày dài gần đây nhất có thể được thu được. Chiến lược đánh giá giá cao và thấp dựa trên nó để tạo ra tín hiệu giao dịch.

Ưu điểm

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

  1. Sử dụng các kỹ thuật hồi quy tuyến tính, nó có một số khả năng dự đoán và đánh giá xu hướng cho giá cả.
  2. Ít thông số, mô hình đơn giản hơn, dễ hiểu và thực hiện.
  3. Các thông số có thể tùy chỉnh chiều dài để điều chỉnh tính linh hoạt của chiến lược.

Rủi ro và giải pháp

Chiến lược này cũng có một số rủi ro:

  1. Phương pháp điều chỉnh hồi quy tuyến tính chỉ là một phương pháp điều chỉnh thống kê dựa trên dữ liệu lịch sử, với khả năng dự đoán xu hướng giá trong tương lai hạn chế.
  2. Nếu cơ bản của công ty trải qua những thay đổi lớn, kết quả của việc điều chỉnh hồi quy tuyến tính có thể trở nên vô hiệu.
  3. Thiết lập không chính xác của tham số Length có thể dẫn đến quá tải.

Các biện pháp đối phó:

  1. Tắt ngắn các tham số Length để tránh quá tải.
  2. Hãy chú ý đến những thay đổi trong các yếu tố cơ bản của công ty và can thiệp thủ công để đóng các vị trí khi cần thiết.
  3. Sử dụng tham số thích nghi Length để điều chỉnh năng động theo điều kiện thị trường.

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

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

  1. Thêm một cơ chế dừng lỗ để kiểm soát lỗ đơn.
  2. Kết hợp với các chỉ số khác để hình thành một chiến lược kết hợp để cải thiện sự ổn định.
  3. Thêm mô-đun tối ưu hóa tự điều chỉnh tham số để thay đổi tham số Dài động.
  4. Thêm một mô-đun điều khiển vị trí để ngăn chặn giao dịch quá mức.

Tóm lại

Chiến lược này xây dựng một chiến lược giao dịch định lượng đơn giản dựa trên sự cắt đứt hồi quy tuyến tính. Nhìn chung, chiến lược có một số giá trị kinh tế, nhưng cũng có một số rủi ro cần lưu ý. Thông qua tối ưu hóa liên tục, nó dự kiến sẽ tiếp tục cải thiện sự ổn định và lợi nhuận của chiến lược.


/*backtest
start: 2023-11-28 00:00:00
end: 2023-12-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 21/03/2018
// Linear Regression Intercept is one of the indicators calculated by using the 
// Linear Regression technique. Linear regression indicates the value of the Y 
// (generally the price) when the value of X (the time series) is 0. Linear 
// Regression Intercept is used along with the Linear Regression Slope to create 
// the Linear Regression Line. The Linear Regression Intercept along with the Slope 
// creates the Regression line.
//
// You can change long to short in the Input Settings
// WARNING:
//  - For purpose educate only
//  - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Line Regression Intercept Backtest", overlay = true)
Length = input(14, minval=1)
xSeria = input(title="Source", defval=close)
reverse = input(false, title="Trade reverse")
xX = Length * (Length - 1) * 0.5
xDivisor = xX * xX - Length * Length * (Length - 1) * (2 * Length - 1) / 6
xXY = 0
for i = 0 to Length-1
	xXY := xXY + (i * xSeria[i])
xSlope = (Length * xXY - xX * sum(xSeria, Length)) / xDivisor
xLRI = (sum(xSeria, Length) - xSlope * xX) / Length
pos = iff(close > xLRI, 1,
       iff(close < xLRI, -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(xLRI, color=blue, title="LRI")

Thêm nữa