Bỏ qua, đến nội dung chính
Stockup

Lần cập nhật cuối:

Dữ liệu

Back-Adjustment Cộng Dồn Qua Nhiều Lần Roll Có Thể Tạo Giá Âm, Méo Giá Lịch Sử

Back-adjustment áp dụng qua nhiều lần roll liên tiếp có thể cộng dồn đủ lớn để đẩy giá lịch sử về âm — một bẫy dữ liệu backtest dễ bị bỏ qua.

Tuan Nguyen

Tuan Nguyen

Back-Adjustment Cộng Dồn Qua Nhiều Lần Roll Có Thể Tạo Giá Âm, Méo Giá Lịch Sử

Mỗi lần roll, back-adjustment cộng thêm một khoảng chênh lệch (basis) vào toàn bộ đoạn dữ liệu phía trước. Qua đủ nhiều lần roll liên tiếp trên một chuỗi dài, các khoản điều chỉnh này cộng dồn lại và có thể đẩy mức giá ở đoạn xa nhất trong quá khứ về âm — một con số không có ý nghĩa kinh tế nhưng vẫn xuất hiện hợp lệ trong dữ liệu.

Định nghĩa đầy đủ

Méo giá cộng dồn do back-adjustment là hiện tượng mức giá tuyệt đối ở đoạn xa nhất của một chuỗi hợp đồng liên tục dài (đã qua nhiều lần điều chỉnh back-adjustment) lệch rất xa so với giá giao dịch thật tại thời điểm đó, thậm chí có thể trở thành số âm nếu tổng các khoản điều chỉnh cộng dồn vượt quá mức giá gốc.

Những điều cần nhớ

  • Mỗi lần roll, back-adjustment cộng thêm một khoản điều chỉnh (basis tại ngày roll đó) vào toàn bộ dữ liệu phía trước, các khoản này cộng dồn qua thời gian.
  • Chuỗi dữ liệu càng dài (càng nhiều lần roll), mức điều chỉnh cộng dồn ở đoạn xa nhất trong quá khứ càng có khả năng lớn.
  • Giá âm xuất hiện ở đoạn xa của chuỗi đã back-adjustment là hệ quả kỹ thuật đã biết của phương pháp này, không nhất thiết là lỗi ghép chuỗi.
  • Méo giá cộng dồn chủ yếu ảnh hưởng chỉ báo dựa trên mức giá tuyệt đối; chỉ báo dựa trên return giữa các phiên liền kề ít bị ảnh hưởng hơn.
  • Một cách giảm ảnh hưởng phổ biến là giới hạn độ dài chuỗi dùng cho backtest hoặc dùng phương pháp điều chỉnh theo tỷ lệ (ratio-adjustment) thay vì cộng trừ tuyệt đối.

Cơ chế cộng dồn: mỗi lần roll thêm một lớp điều chỉnh

Như đã trình bày ở bài back-adjustment là gì, mỗi lần roll, phương pháp này cộng hoặc trừ một hằng số (bằng basis tại ngày roll đó) vào toàn bộ đoạn dữ liệu phía trước điểm roll để loại bỏ bước nhảy giá giả. Vấn đề nảy sinh khi một chuỗi trải qua nhiều lần roll liên tiếp: mỗi lần roll lại thêm một lớp điều chỉnh mới chồng lên các lớp điều chỉnh trước đó, khiến đoạn dữ liệu càng xa trong quá khứ càng phải gánh nhiều lớp cộng dồn.

Điều khiến hiện tượng này dễ bị bỏ qua là nó không xuất hiện ngay khi mới ghép chuỗi — một chuỗi mới chỉ trải qua vài lần roll thường chưa có mức điều chỉnh cộng dồn đủ lớn để gây ra vấn đề rõ rệt. Méo giá cộng dồn chỉ trở nên đáng chú ý khi chuỗi đã được dùng và mở rộng qua nhiều năm, nhiều chục lần roll — đúng lúc người dùng dữ liệu có thể đã quên mất rằng chuỗi mình đang dùng là kết quả của một quá trình điều chỉnh tích lũy lâu dài.

Vì sao chuỗi càng dài, càng nhiều lần roll, méo giá càng lớn

Mỗi lần roll đóng góp một khoản điều chỉnh riêng, và các khoản này không triệt tiêu lẫn nhau — chúng cộng dồn tuyến tính theo số lần roll. Một chuỗi dữ liệu kéo dài nhiều năm, trải qua vài chục lần roll, có thể tích lũy một mức điều chỉnh tổng cộng lớn hơn nhiều so với biên độ giá thực tế của thị trường trong giai đoạn đầu chuỗi. Đây là lý do vì sao vấn đề này đặc biệt đáng chú ý với các chuỗi dữ liệu dài hạn dùng cho backtest nhiều năm.

Giá âm trong dữ liệu backtest — lỗi hay hệ quả kỹ thuật đã biết

Khi nhìn thấy giá âm ở đoạn xa của một chuỗi dữ liệu đã back-adjustment, phản ứng tự nhiên là nghi ngờ có lỗi. Trên thực tế, đây là hệ quả kỹ thuật đã biết của chính phương pháp back-adjustment, không phải lỗi ghép chuỗi hay lỗi nguồn dữ liệu. Giá trị âm đó không phản ánh việc hợp đồng từng giao dịch ở mức giá âm tại bất kỳ thời điểm nào — nó chỉ là kết quả của việc cộng dồn nhiều lớp điều chỉnh qua thời gian.

Điều này khác với trường hợp một bản ghi giá âm xuất hiện đơn lẻ, không nhất quán với xu hướng cộng dồn của toàn chuỗi — trường hợp đó nhiều khả năng là lỗi dữ liệu thật (bad tick) chứ không phải hệ quả của back-adjustment, và cần được xử lý theo hướng lọc dữ liệu nhiễu thay vì chấp nhận như một đặc tính đã biết của phương pháp điều chỉnh giá.

Ảnh hưởng đến các chỉ báo dùng mức giá tuyệt đối ở đoạn xa

Méo giá cộng dồn ảnh hưởng nặng nhất đến các chỉ báo phụ thuộc trực tiếp vào mức giá tuyệt đối — ví dụ một quy tắc giao dịch dựa trên việc giá vượt qua một ngưỡng cố định cụ thể. Ở đoạn dữ liệu xa đã bị méo giá đáng kể, các chỉ báo này sẽ cho kết quả không còn ý nghĩa kinh tế. Ngược lại, các chỉ báo dựa trên return (chênh lệch phần trăm giữa các phiên liền kề) ít bị ảnh hưởng hơn, vì các khoản điều chỉnh cộng/trừ hằng số phần lớn triệt tiêu khi tính hiệu giữa hai phiên gần nhau.

Một trường hợp trung gian đáng chú ý là các chỉ báo dựa trên biên độ dao động tương đối (ví dụ dải Bollinger Band tính theo độ lệch chuẩn quanh một đường trung bình động). Vì các chỉ báo này vẫn neo vào mức giá tuyệt đối tại từng thời điểm để xác định vị trí của dải, chúng cũng chịu ảnh hưởng của méo giá cộng dồn dù không hoàn toàn giống các chỉ báo dùng ngưỡng giá cố định — mức độ ảnh hưởng phụ thuộc vào việc chỉ báo neo vào giá tuyệt đối hay vào biến động tương đối là chủ yếu.

Cách giảm ảnh hưởng của méo giá cộng dồn khi backtest dài hạn

Có hai hướng xử lý phổ biến. Thứ nhất, giới hạn độ dài chuỗi dữ liệu dùng cho backtest ở một khoảng đủ để giữ mức điều chỉnh cộng dồn trong biên độ hợp lý, thay vì dùng toàn bộ lịch sử có sẵn. Thứ hai, cân nhắc dùng phương pháp điều chỉnh theo tỷ lệ (ratio-adjustment) thay vì cộng/trừ tuyệt đối — cách này nhân giá với một hệ số thay vì cộng một hằng số, giúp giá không bao giờ về âm, nhưng có đánh đổi riêng về độ chính xác của biến động phần trăm ở đoạn xa.

Một hướng thứ ba, ít phổ biến hơn nhưng đáng cân nhắc với chuỗi rất dài, là chia chuỗi thành nhiều đoạn con và chỉ áp dụng back-adjustment trong nội bộ mỗi đoạn, thay vì cộng dồn xuyên suốt toàn bộ chiều dài dữ liệu. Cách này giữ được lợi ích loại bỏ bước nhảy giả trong mỗi đoạn, đồng thời giới hạn mức điều chỉnh cộng dồn tối đa có thể xảy ra — đổi lại, việc so sánh giá tuyệt đối giữa các đoạn khác nhau sẽ không còn ý nghĩa trực tiếp.

Ví dụ minh họa cộng dồn điều chỉnh qua nhiều lần roll

Một chuỗi 24 lần roll liên tiếp, mỗi lần điều chỉnh cộng dồn trung bình +8 điểm (giả định minh họa), tổng cộng dồn có thể lên tới +192 điểm ở đoạn xa nhất. Nếu mức giá gốc tại đoạn đó chỉ khoảng 150 điểm (số minh họa không phản ánh giá VN30F1M thật), sau điều chỉnh mức giá hiển thị có thể trở thành số âm, dù giá giao dịch thật tại thời điểm đó chưa từng âm.

Số lần roll đã qua (minh họa)Mức điều chỉnh cộng dồn (điểm)Giá gốc đoạn xa (điểm, minh họa)Giá sau điều chỉnh (điểm)
00150150
12+96150246
24+192150-42

Số liệu hoàn toàn minh họa, không phải giá VN30F1M thật.

Câu hỏi thường gặp về méo giá cộng dồn do back-adjustment

Giá âm trong dữ liệu hợp đồng tương lai đã điều chỉnh có nghĩa là hợp đồng từng giao dịch ở mức giá âm không?

Không. Đây là hệ quả của việc cộng dồn nhiều lớp điều chỉnh back-adjustment qua thời gian, không phản ánh giá giao dịch thật tại bất kỳ thời điểm nào trong quá khứ.

Có nên loại bỏ dữ liệu có giá âm khỏi backtest không?

Tuỳ mục đích: nếu chỉ báo dùng return (không dùng mức giá tuyệt đối), đoạn dữ liệu đó vẫn có thể dùng được; nếu chỉ báo phụ thuộc mức giá tuyệt đối, nên xem xét giới hạn độ dài chuỗi hoặc đổi phương pháp điều chỉnh.

Ratio-adjustment khác gì back-adjustment cộng trừ tuyệt đối?

Ratio-adjustment điều chỉnh bằng cách nhân với một tỷ lệ thay vì cộng/trừ một khoảng tuyệt đối, giúp giá không bao giờ về âm nhưng vẫn có đánh đổi riêng về độ chính xác của biến động phần trăm ở đoạn xa.

Méo giá cộng dồn có xảy ra với mọi chuỗi dữ liệu hợp đồng tương lai không?

Chỉ xảy ra với chuỗi đã qua back-adjustment; chuỗi dùng giá thô (không điều chỉnh) không gặp hiện tượng này, nhưng đổi lại có bước nhảy giá giả tại mỗi điểm roll.

Làm sao biết một chuỗi dữ liệu mình đang dùng có bị méo giá cộng dồn không?

Kiểm tra xem chuỗi có dùng back-adjustment hay không và độ dài/số lần roll của chuỗi; nếu có, nên xem trực tiếp giá trị ở đoạn xa nhất trong quá khứ để phát hiện các giá trị bất thường (âm hoặc quá thấp so với biên độ hợp lý).

Nguồn tham khảo

Lưu ý rủi ro: Nội dung trong bài mang tính giáo dục về đặc tính kỹ thuật của một phương pháp xử lý dữ liệu, không liên quan giá trị thật của hợp đồng và không phải khuyến nghị đầu tư. Ví dụ số âm trong bài chỉ minh họa cơ chế, không nhằm tạo cảm giác rủi ro về sản phẩm phái sinh.

Xem thêm bài back-adjustment là gìlọc dữ liệu nhiễu trước khi backtest. Muốn tránh những bẫy dữ liệu khó thấy như thế này? Đăng ký bản tin StockUp để nhận loạt bài phương pháp luận dữ liệu phái sinh.

Tuan Nguyen

Tuan Nguyen

Founder

18+ năm xây dựng sản phẩm Web, SaaS, FinTech và Blockchain — hơn 120 dự án thực tế, kết hợp kinh nghiệm đầu tư chứng khoán và phát triển hệ thống phân tích, giao dịch tài chính.

Trang tác giảLiên hệ

Chia sẻ bài viết

fin

Stockup cung cấp công cụ nghiên cứu và dữ liệu lịch sử. Nội dung trên website không phải khuyến nghị đầu tư và không phải dịch vụ tư vấn đầu tư chứng khoán. Mọi quyết định giao dịch và rủi ro thuộc về người dùng. Giao dịch chứng khoán phái sinh sử dụng đòn bẩy và có thể dẫn tới thua lỗ lớn.

Bình luận (0)

Góp ý về phương pháp, số liệu hoặc cách bạn đang áp dụng. Bình luận hiển thị công khai sau khi gửi, có thể bị ẩn nếu vi phạm quy định. Email chỉ dùng để liên hệ lại, không hiển thị công khai.

0/800

Đang tải bình luận...

Đọc tiếp các bài khác trong cùng cụm nghiên cứu.

Xem tất cả