Chiến lược ngắn hạn hồi quy tuyến tính và trung bình di chuyển kép

Tác giả:ChaoZhang, Ngày: 2024-01-26 12:33:14
Tags:

img

Tổng quan

Chiến lược này kết hợp các chỉ số hồi quy tuyến tính và trung bình động theo hàm số hai để thực hiện các hoạt động theo dõi ngắn hạn. Chiến lược này thiết lập các vị trí ngắn khi giá vượt qua đường ray trên và dưới, và đóng các vị trí khi giá vượt qua lại. Đồng thời, chiến lược này cũng sử dụng trung bình động theo hàm số hai để xác định xu hướng giá như một điều kiện phụ trợ để thiết lập các vị trí.

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

Chiến lược này chủ yếu sử dụng các chỉ số hồi quy tuyến tính để xác định sự đột phá giá. Chỉ số hồi quy tuyến tính được tính dựa trên giá cao nhất và thấp nhất trong một khoảng thời gian nhất định bằng cách sử dụng hồi quy tuyến tính để có được đường ray trên và dưới. Khi giá phá vỡ khỏi đường ray trên hoặc phá vỡ khỏi đường ray dưới, chúng tôi tin rằng đó là một tín hiệu giao dịch.

Ngoài ra, chiến lược này cũng giới thiệu trung bình chuyển động hàm số hai để xác định xu hướng tạm thời. Trung bình chuyển động hàm số hai có thể phản ứng nhanh hơn với những thay đổi giá. Khi giá giảm từ đường ray trên, nếu trung bình chuyển động hàm số hai đã vượt quá giá vào thời điểm này, nó cho thấy rằng nó hiện đang có xu hướng giảm. Chúng tôi sẽ thiết lập các vị trí ngắn. Khi giá vượt qua đường ray trên một lần nữa hoặc vượt qua trung bình chuyển động hàm số hai, chúng tôi sẽ làm phẳng các vị trí.

Cụ thể, các điểm chính của chiến lược bao gồm:

  1. Tính toán hồi quy tuyến tính trên và dưới đường ray
  2. Tính toán trung bình di chuyển hàm số hai
  3. Khi giá phá vỡ từ đường ray trên và đường trung bình di chuyển theo hàm số nhân kép là trên giá, thiết lập các vị trí ngắn
  4. Khi giá vượt qua đường sắt trên một lần nữa hoặc vượt quá đường trung bình di chuyển nhân tố kép, các vị trí ngắn được làm bằng

Phân tích lợi thế

So với trung bình động truyền thống và các chỉ số khác, chiến lược này có những lợi thế sau:

  1. Các chỉ số hồi quy tuyến tính có thể nắm bắt thay đổi giá nhanh hơn và hiệu quả hơn như tín hiệu nhập cảnh
  2. Trung bình di chuyển hàm số hai xác định xu hướng nhạy cảm hơn và có thể tránh các sự đột phá sai
  3. Kết hợp hai chỉ số và điều kiện có thể lọc một số tiếng ồn và làm cho giao dịch ổn định hơn

Phân tích rủi ro

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

  1. Các chỉ số hồi quy tuyến tính nhạy cảm với các thông số và các chu kỳ khác nhau có thể tạo ra kết quả khác nhau
  2. Trung bình di chuyển hàm số hai có thể lệch và đánh giá sai
  3. Các chiến lược đột phá có thể làm tăng rủi ro trượt
  4. Khởi mở và đóng cửa các vị trí thường xuyên có thể xảy ra trên thị trường biến động

Đối với các rủi ro trên, chúng tôi có thể giải quyết chúng bằng cách tối ưu hóa tham số, dừng lỗ nghiêm ngặt, thư giãn phù hợp với kích thước đột phá, vv

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. Tối ưu hóa chu kỳ hồi quy tuyến tính và chu kỳ trung bình di chuyển theo hàm số kép để tìm kết hợp tham số tốt nhất
  2. Thêm đánh giá biến động giá để tránh lỗi do đột phá giá nhẹ
  3. Tăng các điều kiện phụ như khối lượng giao dịch để đảm bảo hiệu quả của sự đột phá
  4. Đặt mức dừng lỗ để giảm lỗ đơn
  5. Điều chỉnh các thông số cho các giống cụ thể

Tóm lại

Chiến lược này sử dụng toàn diện các chỉ số hồi quy tuyến tính và trung bình động theo hàm số kép, có một số lợi thế nhất định trong lý thuyết và thực tế. Sự cải thiện hơn nữa về sự ổn định và kết quả chiến lược có thể đạt được thông qua tối ưu hóa và điều chỉnh liên tục. Chiến lược này phù hợp với các hoạt động ngắn hạn và có thể mang lại alpha tốt cho các nhà giao dịch định lượng.


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

//@version=4
strategy('LR&SSL_Short', overlay=true)
startP = timestamp(input(2017, "Start Year"), input(12, "Month"), input(17, "Day"), 0, 0)
end   = timestamp(9999,1,1,0,0)
_testPeriod() => true

len = input(title="Period", defval=89)
smaHigh = linreg(high, len, 0)
smaLow = linreg(low, len, -1)
Hlv = 0.0
Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : Hlv[1]
sslDown = Hlv < 0 ? smaHigh : smaLow
sslUp = Hlv < 0 ? smaLow : smaHigh

plot(sslDown, linewidth=2, color=color.red)
plot(sslUp, linewidth=2, color=color.lime)



length = input(200, title="DEMA") 
d1 = ema(close, length)                                               
d2 = 2 * d1 - ema(d1, length)                                         
trendColour = d2 > d1 ? #AAFFAA : #FFAAAA 
dema=sma(d2,length) 

turnGreen = d2 > d1 and d2[1] <= d1[1]  
turnRed   = d2 <= d1 and d2[1] > d1[1]  

up =turnGreen 
down=turnRed 
  
plotshape(down, title="down", style=shape.triangledown,location=location.abovebar, color=color.red, transp=0, size=size.small) 
plotshape(up,  title="up", style=shape.triangleup,location=location.belowbar, color=color.green, transp=0, size=size.small) 
plot(dema, color = trendColour,linewidth=3 ,transp = 0)
bgcolor(close > dema ? color.green : color.red)

strategy.entry("short", strategy.short, when= crossunder(sslUp, sslDown) and dema > close and _testPeriod())
strategy.close("short", when = crossover(sslUp, sslDown) or crossover(close, dema))


Thêm nữa