Mục lục bài viết
- Bằng chứng và phạm vi
- Hình minh họa
- Quy trình
- Đường fit mô tả quá khứ
- Fit chỉ trước nến phát hiện
- Hồi vào kênh và gãy chế độ
- Giữ hệ số, quy định stop và mục tiêu
- Residual nhỏ không đảm bảo dự báo đáng tin
- Volume là bộ lọc sự kiện, không sửa đường sau lệnh
- Thử nghiệm theo thời gian
- Sai lầm thường gặp
- Checklist thực hành
- Câu hỏi thường gặp
- Nguồn nghiên cứu
Bằng chứng và phạm vi
Nguồn Fidelity mô tả indicator hồi quy; statsmodels và NIST hỗ trợ phép fit và chẩn đoán. Không nguồn nào xác nhận chiến lược mean reversion đề xuất có lợi nhuận.
Quy trình thực hành
- Fit quá khứOLS log giá có intercept, không chứa trigger.
- Kiểm tra regimeĐộ dốc và residual đạt tiêu chuẩn định trước.
- Chốt excursionNgoài kênh thì lưu hệ số bất biến.
- Chờ reclaimClose quay vào nhưng chưa vượt target.
- Đánh giá rủi roStop, time exit và chi phí trong test ngoài mẫu.
Đường fit mô tả quá khứ
Fidelity mô tả Linear Regression Indicator bằng endpoint của một đường fit trong N kỳ [1]. Kênh trong bài mở rộng ý tưởng đó bằng residual. Khi giá có xu hướng, đường giữa cũng dốc; một khoảng cách lớn dưới đường không tự mang nghĩa tài sản rẻ hoặc chắc chắn tăng.
Cần phân biệt hai câu hỏi: đường thẳng giải thích cửa sổ đã qua tốt đến đâu, và khoảng lệch hiện tại có dự báo lợi suất tương lai hay không. R² cao thuộc câu hỏi thứ nhất. Một xu hướng giảm rất đều có thể có R² cao nhưng mua mỗi lần thấp hơn đường vẫn thua.
Fit chỉ trước nến phát hiện
Với j=0…N−1, y[j]=log(C[j]), fit y=a+bj bằng bình phương tối thiểu. Residual e[j]=y[j]−a−bj; s=sqrt(sum(e²)/(N−2)). Đường dự phóng ở bước h là m(h)=a+b(N−1+h); kênh giá exp(m(h)±ks). Đề xuất N60,k2, loại s gần0 và kiểm tra giá dương.
statsmodels OLS không tự thêm intercept khi dùng ma trận đầu vào [2]; cần cột hằng số. Baseline dùng cửa sổ kết thúc t−1 rồi xét close t tại h=1. Nếu fit có chứa chính nến t, cú sốc sẽ kéo đường giữa và độ rộng theo nó; đó là phiên bản khác, không phải ngưỡng tồn tại trước sự kiện.
if no_candidate:
if invalid_or_nonpositive(close[t-N:t+1]): return
a,b,s = fit_log_ols(close[t-N:t], with_intercept=True)
if not finite(a,b,s) or s <= min_residual_scale: return
regime_ok = abs(b)*(N-1)/s <= 1.0
z = (log(C[t])-(a+b*N))/s
if regime_ok and z < -2:
freeze_candidate(a,b,s,origin=t-N,expiry=t+10,
previous_z=z,excursion_low=L[t])
else:
if t > candidate.expiry:
expire(); return
j = t-candidate.origin
z = (log(C[t])-(candidate.a+candidate.b*j))/candidate.s
update_excursion_low(L[t])
if candidate.previous_z < -2 and -2 <= z < 0:
emit_long(t)
candidate.previous_z = z
# Never refit an active candidate or backfill historical channels.
Hồi vào kênh và gãy chế độ
Ví dụ tổng hợp đường giữa gần100, độ dốc0 và s_log=0,01. Dải dưới2sigma≈98,02; trên≈102,02. Giá97,8 nằm ngoài dưới, rồi close98,3 quay vào. Nếu entry98,4, stop97,5 và target100, rủi ro0,9, lợi nhuận tiềm năng1,6, tương đương1,78R gộp.
Nhánh thành công đi tới100 trước stop. Nhánh thất bại có tin làm giá giảm96 rồi94; lệnh phải dừng tại giá khả thi quanh97,5 hoặc tệ hơn khi gap. Fit lịch sử đẹp không ngăn mean thay đổi. Không được mở rộng sigma sau cú giảm để nói rằng stop cũ chưa thực sự bị phá.
Một minh họa khác: nến tiếp theo nhảy thẳng từ97,8 lên101. Dù z đã quay vào, baseline yêu cầu z<0 nên không mua khi giá vượt target giữa kênh. Quy tắc này phải được đặt trước; đừng lọc riêng các gap bất lợi sau khi thấy PnL.
Giữ hệ số, quy định stop và mục tiêu
Mô hình đóng băng vẫn có đường giữa dự phóng theo b; đóng băng không đồng nghĩa đường nằm ngang. Tại signal, chốt target bằng giá đường giữa của thời điểm dự kiến entry, stop dưới low toàn excursion trừ buffer. Baseline thoát sau10 nến nếu chưa đạt target/stop;10 là giả thuyết nghiên cứu.
Regime filter abs(b)(N−1)/s≤1 kiểm tra độ trôi tương đối trong cửa sổ, chưa phải kiểm định stationarity. Nếu muốn breakout theo hướng z thay vì fade, cần strategy riêng. Không đảo mục tiêu giữa mean reversion và trend following theo kết quả của từng lệnh.
Residual nhỏ không đảm bảo dự báo đáng tin
NIST thảo luận các giả định residual như tính độc lập và phương sai ổn định trong hồi quy cổ điển [3]. Giá tài chính có thể vi phạm chúng. Vì vậy không chuyển khoảng±2s thành xác suất95% cho nến tiếp theo, và không coi p-value độ dốc theo OLS đơn giản là bằng chứng giao dịch.
Đề xuất kiểm tra residual autocorrelation, phân phối đuôi và độ ổn định s qua các cửa sổ. Nếu residual kéo dài cùng một phía, chiến lược fade có thể đang chống xu hướng mới. Khi phân tích, tách hiệu ứng model update khỏi hồi quy thật của giá bằng cách dùng các snapshot cố định.
Volume là bộ lọc sự kiện, không sửa đường sau lệnh
Một giả thuyết là tránh fade khi RVOL cao bất thường vì có thể đang diễn ra repricing. Giả thuyết ngược là volume cao ở excursion nhưng giảm khi reclaim tạo cơ hội. Không có lý do chọn cả hai diễn giải sau khi xem trade; đăng ký một feature và kiểm định riêng.
Dùng baseline cùng giờ, lưu spread và event news nếu có timestamp công khai. Không đưa volume tương lai của toàn excursion vào quyết định trước excursion kết thúc. Nếu chuyển sang hồi quy trọng số volume, mô hình đã đổi; cần đánh giá riêng so với OLS không trọng số.
Thử nghiệm theo thời gian
So kênh hồi quy với Bollinger mean phẳng và với z-score không có slope, dùng cùng entry/exit và chi phí. Chọn N,k,filter trên development, giữ test cuối chưa xem. Dùng walk-forward có khoảng cách đủ cho các trade chồng lấn để tránh cùng một excursion xuất hiện hai tập.
Test intercept, cửa sổ đúng t−1, scale log, s zero, dữ liệu thiếu và prefix invariance. Báo lợi suất ròng, tail loss, số ngày không có trade và hiệu quả theo regime. Nếu lợi nhuận chỉ đến từ giả định fill tại đúng đường giữa trên một nến gap, mô hình thực thi cần sửa trước kết luận.
Sai lầm thường gặp
Refit kênh lịch sử
Đường hiện tại kéo lại các tín hiệu cũ và khiến hình có vẻ luôn đúng.
R² biến thành win rate
Mức giải thích trong mẫu không bằng khả năng dự báo lợi suất.
Fade cú đổi chế độ
Kênh cũ có thể mất ý nghĩa khi giá được định giá lại theo thông tin mới.
Checklist trước khi dùng phương pháp
Tự đánh dấu khi đã kiểm tra trên dữ liệu của bạn. Trạng thái lưu trong trình duyệt này; đây không phải chứng nhận chiến lược có lãi.
Câu hỏi thường gặp
Kênh hồi quy có luôn tốt hơn Bollinger?
Không. Nó thêm độ dốc và lựa chọn model; cần ablation cùng quy tắc trade để đánh giá.
Có dùng hồi quy đa thức cho khớp đẹp hơn?
Có thể nghiên cứu, nhưng thêm bậc tự do và rủi ro overfit. Baseline tuyến tính giúp kiểm định rõ hơn.
Nguồn nghiên cứu
Các nguồn dưới đây hỗ trợ phần định nghĩa hoặc bằng chứng được ghi bên cạnh. Mã giả, ví dụ minh họa và tham số đề xuất trong bài cần được kiểm định riêng.
- Linear Regression IndicatorFidelity. Đã đọc định nghĩa endpoint của indicator. Đối chiếu: .
- statsmodels OLSstatsmodels. Đã đọc intercept, dữ liệu thiếu và fit OLS. Đối chiếu: .
- Are the model residuals well-behaved?NIST/SEMATECH. Đã đọc giả định residual của hồi quy cổ điển; không phải kết luận về thị trường. Đối chiếu: .
Đọc tiếp theo phương pháp
Lưu ý rủi ro
Nội dung phục vụ giáo dục và thiết kế nghiên cứu, không phải lời khuyên tài chính. Backtest là mô phỏng lịch sử, không bảo đảm hiệu quả tương lai và không đặt lệnh giao dịch thật. Các phương pháp trong thư viện không mặc nhiên là tính năng đã có trong ứng dụng. Xem phương pháp tính và trung tâm học.
Kiểm tra quy tắc trước khi dùng vốn thật
Đối chiếu khả năng hỗ trợ của ứng dụng, dữ liệu và từng giao dịch mô phỏng; các detector nâng cao có thể cần triển khai riêng.
Tải Backtest trên App Store