Chuỗi hợp đồng liên tục VN30F1M là dữ liệu giá được nối từ nhiều hợp đồng tháng kế tiếp (VN30F1M, VN30F2M...) qua các lần roll, dùng để backtest dài hạn. Ba nhóm quyết định — chọn ngày roll, điều chỉnh giá, và cách xử lý đổi mã/nguồn dữ liệu — đều có thể tạo ra bẫy làm sai lệch kết quả kiểm định nếu xử lý không đúng.
Định nghĩa đầy đủ
Chuỗi hợp đồng liên tục VN30F1M là chuỗi giá lịch sử được ghép nối từ nhiều hợp đồng tương lai VN30 kế tiếp nhau qua các lần roll, tạo thành một dãy giá liên tục đủ dài để backtest — vì một hợp đồng riêng lẻ chỉ tồn tại khoảng 1 tháng trước khi đáo hạn. Cách ghép (chọn ngày roll, có điều chỉnh giá hay không) quyết định trực tiếp hình dạng và độ chính xác của chuỗi.
Những điều cần nhớ
- Một hợp đồng VN30F1M riêng lẻ chỉ giao dịch khoảng 1 tháng trước khi đáo hạn, không đủ dài để backtest chiến lược dài hạn.
- Chuỗi hợp đồng liên tục được tạo bằng cách nối nhiều hợp đồng tháng kế tiếp tại các "ngày roll" xác định trước.
- Phương pháp chọn ngày roll và phương pháp điều chỉnh giá là hai quyết định độc lập, mỗi quyết định có thể tạo bẫy dữ liệu riêng.
- Đổi mã hợp đồng (như mốc chuyển hệ thống KRX năm 2025) có thể làm đứt chuỗi nếu ghép theo chuỗi ký tự mã thay vì theo cặp (tài sản cơ sở, ngày đáo hạn).
- Một chuỗi ghép sai vẫn cho ra kết quả backtest có vẻ hợp lý, nhưng sai theo cách khó phát hiện nếu không biết để kiểm tra.
Vì sao cần ghép chuỗi thay vì dùng dữ liệu 1 hợp đồng
Hợp đồng tương lai chỉ số VN30 không tồn tại vĩnh viễn. Mỗi mã hợp đồng — như VN30F1M của một tháng cụ thể — chỉ được niêm yết và giao dịch trong một khoảng thời gian giới hạn trước khi đáo hạn, sau đó được thay thế bằng một mã mới cho kỳ hạn kế tiếp. Với người xem bảng giá hàng ngày, đây không phải vấn đề: họ chỉ cần biết mã đang giao dịch là gì. Nhưng với người muốn kiểm định (backtest) một chiến lược qua nhiều năm dữ liệu, một hợp đồng đơn lẻ không đủ dài để làm việc đó.
Một hợp đồng VN30F1M chỉ tồn tại khoảng 1 tháng
Vì hợp đồng tháng gần nhất (F1M) đáo hạn định kỳ, dữ liệu giá của riêng một mã hợp đồng thường chỉ kéo dài trong khoảng một tháng giao dịch thực tế trước khi mã đó ngừng tồn tại. Muốn có một dãy giá đủ dài để kiểm định chiến lược qua nhiều chu kỳ thị trường, cần nối dữ liệu của nhiều hợp đồng kế tiếp nhau lại thành một chuỗi duy nhất — đó chính là chuỗi hợp đồng liên tục. Không có cách nào khác để có được một dãy giá liên tục kéo dài nhiều năm cho một hợp đồng tương lai chỉ số, vì bản chất sản phẩm này luôn gắn với một ngày đáo hạn cố định.
Điều này khác căn bản với dữ liệu cổ phiếu cơ sở, nơi một mã chứng khoán có thể tồn tại liên tục hàng chục năm mà không cần ghép nối gì cả. Với hợp đồng tương lai, việc ghép chuỗi không phải một lựa chọn tuỳ ý — nó là điều kiện bắt buộc để có dữ liệu đủ dài phục vụ backtest, và chính vì bắt buộc nên phương pháp ghép càng cần được hiểu rõ thay vì áp dụng theo mặc định của một công cụ nào đó.
3 quyết định phương pháp luận khi ghép chuỗi
Ghép chuỗi hợp đồng liên tục không phải một thao tác đơn giản là "nối dữ liệu". Đó là một chuỗi quyết định phương pháp luận, mỗi quyết định ảnh hưởng đến hình dạng cuối cùng của dữ liệu, và mỗi quyết định đều có thể được thực hiện theo nhiều cách khác nhau — không có một "cách đúng duy nhất" áp dụng cho mọi mục đích sử dụng.
Chọn ngày roll
Quyết định đầu tiên là xác định chính xác ngày chuyển từ dùng giá hợp đồng đang gần đáo hạn sang giá hợp đồng kỳ hạn kế tiếp. Có nhiều tiêu chí khác nhau để chọn ngày này — cố định theo lịch, theo thời điểm Open Interest của hợp đồng kế tiếp vượt hợp đồng hiện tại, hoặc theo khối lượng giao dịch. Mỗi tiêu chí cho ra một tập ngày roll khác nhau trên cùng dữ liệu gốc (xem phân tích chi tiết ở bài phương pháp chọn ngày roll). Quyết định này cần được cố định và ghi rõ ngay từ đầu, vì đổi tiêu chí giữa chừng — dù chỉ ở một vài kỳ hạn — cũng đủ khiến chuỗi dữ liệu trở nên không nhất quán.
Điều chỉnh giá hay giữ giá thô
Quyết định thứ hai là có điều chỉnh giá tại mỗi điểm roll hay không. Vì hai hợp đồng kế tiếp thường không có cùng mức giá tại đúng ngày chuyển (chênh lệch này gọi là basis), nối trực tiếp giá thô sẽ tạo ra một bước nhảy giá giả trong chuỗi. Kỹ thuật back-adjustment (Panama method) điều chỉnh lại mức giá để loại bỏ bước nhảy này, nhưng đổi lại giá tuyệt đối ở quá khứ xa không còn khớp với giá giao dịch thật (xem bài back-adjustment so với giá thô). Quyết định này không độc lập với loại chỉ báo sẽ dùng trong chiến lược: chỉ báo dựa trên mức giá tuyệt đối cần dữ liệu đã điều chỉnh, còn chỉ báo dựa trên biến động phần trăm thường ít bị ảnh hưởng bởi lựa chọn này.
Xử lý đổi mã hợp đồng và nguồn dữ liệu theo thời gian
Quyết định thứ ba, thường bị bỏ qua nhiều nhất, là cách công cụ ghép chuỗi định danh một hợp đồng theo thời gian. Nếu việc định danh chỉ dựa vào chuỗi ký tự mã hiển thị trên bảng giá, một thay đổi về quy ước đặt mã — như mốc chuyển hệ thống KRX giữa năm 2025 — có thể khiến công cụ hiểu nhầm đây là hai hợp đồng khác nhau, dẫn đến đứt chuỗi hoặc bước nhảy giá giả không liên quan gì đến basis. Quyết định đúng là định danh hợp đồng theo cặp (tài sản cơ sở, ngày đáo hạn thực tế) thay vì theo mã ký tự thuần túy.
Các bẫy dữ liệu lịch sử phổ biến khi ghép chuỗi VN30F1M
Ba nhóm bẫy dữ liệu chính khi ghép chuỗi hợp đồng liên tục VN30F1M gồm:
- Chọn ngày roll không nhất quán — dùng lẫn lộn nhiều tiêu chí roll giữa các đoạn thời gian khác nhau mà không ghi rõ quy tắc, khiến chuỗi khó tái lập.
- Không điều chỉnh giá tại điểm roll (hoặc điều chỉnh sai) — để lại bước nhảy giá giả do basis (xem bài vì sao chuỗi giá nhảy tại ngày roll), hoặc áp dụng back-adjustment qua quá nhiều lần roll khiến giá cộng dồn méo lệch, thậm chí âm.
- Bỏ sót thay đổi mã hợp đồng hoặc nguồn dữ liệu theo thời gian — như mốc đổi định dạng mã hợp đồng theo hệ thống KRX giữa năm 2025, có thể làm đứt chuỗi nếu công cụ ghép chuỗi chỉ dựa vào chuỗi ký tự mã hiển thị thay vì định danh hợp đồng theo cặp (tài sản cơ sở, ngày đáo hạn thực tế) — xem bài mã hợp đồng KRX làm đứt chuỗi dữ liệu.
Vì sao một chuỗi ghép sai vẫn "chạy được" backtest nhưng cho kết quả sai
Đây là điểm khiến bẫy dữ liệu nguy hiểm hơn một lỗi kỹ thuật thông thường: một chuỗi ghép sai không tạo ra lỗi chương trình. Công cụ backtest vẫn đọc được dữ liệu, vẫn tính được chỉ báo, vẫn xuất ra một đường cong lợi nhuận/thua lỗ trông có vẻ hợp lý. Sai số nằm ở nội dung dữ liệu — một bước nhảy giá giả tại đúng ngày roll, một khoảng trống bị bỏ sót, hay một đoạn giá bị méo do điều chỉnh cộng dồn — chứ không phải ở việc chương trình có chạy được hay không. Người kiểm định phải chủ động biết để tìm những dấu hiệu này, vì không có cảnh báo kỹ thuật nào tự động xuất hiện.
Giả sử chuỗi giá đóng cửa 5 phiên cuối hợp đồng tháng 1 là 1.280, 1.282, 1.279, 1.285, 1.290 (điểm), và 5 phiên đầu hợp đồng tháng 2 sau roll là 1.310, 1.308, 1.312, 1.315, 1.313 (điểm). Nếu nối trực tiếp không điều chỉnh, chuỗi xuất hiện bước nhảy +20 điểm đúng ngày roll dù thị trường không biến động đột ngột — một chỉ báo tính trên chuỗi này (ví dụ trung bình động) sẽ "thấy" cú tăng giả đó như một biến động giá thật. Toàn bộ số liệu ở trên là ví dụ minh họa, không phải giá VN30F1M thật.
| Phiên (minh họa) | Trước roll (hợp đồng tháng 1) | Sau roll (hợp đồng tháng 2) |
|---|---|---|
| -2 | 1.280 | — |
| -1 | 1.282 | — |
| Ngày roll | 1.279 | 1.310 |
| +1 | — | 1.308 |
| +2 | — | 1.312 |
Ví dụ minh họa: bước nhảy khoảng 31 điểm quan sát được đúng ngày roll không phản ánh biến động thị trường thật, mà là chênh lệch basis giữa hai hợp đồng chưa được điều chỉnh — không phải giá VN30F1M thật.
Vì hợp đồng tương lai VN30 giao dịch có đòn bẩy thông qua ký quỹ, một bước nhảy giá giả trong dữ liệu có thể khiến chỉ báo tính toán mức biến động (volatility) hoặc drawdown bị thổi phồng đáng kể tại đúng những đoạn chứa ngày roll — làm sai lệch không chỉ tín hiệu vào/ra lệnh mà cả các thước đo rủi ro dùng để đánh giá chiến lược. Đây là lý do vì sao việc hiểu và xử lý đúng các bẫy dữ liệu ở tầng ghép chuỗi quan trọng không kém việc thiết kế đúng logic chiến lược.
Cách kiểm tra nhanh một chuỗi hợp đồng liên tục có đáng tin không
Trước khi tin vào kết quả backtest chạy trên một chuỗi dữ liệu, có thể kiểm tra nhanh vài điểm sau:
- Quy tắc chọn ngày roll có được công bố rõ ràng và áp dụng nhất quán qua toàn bộ chuỗi không, hay thay đổi tuỳ tiện giữa các kỳ hạn.
- Chuỗi có điều chỉnh giá tại điểm roll hay giữ giá thô, và lựa chọn đó có phù hợp với loại chỉ báo đang dùng trong chiến lược hay không.
- Đoạn dữ liệu quanh các mốc đổi mã hợp đồng hoặc đổi nguồn dữ liệu có bị đứt hoặc nhảy giá bất thường không — đặc biệt cần soi kỹ quanh mốc chuyển hệ thống KRX giữa năm 2025 nếu chuỗi dữ liệu bắc qua giai đoạn đó.
- Độ dài chuỗi và số lần roll đã trải qua, nếu chuỗi dùng back-adjustment, để ước lượng mức độ méo giá cộng dồn có thể xảy ra ở đoạn xa nhất.
- Nguồn gốc dữ liệu có được công khai không, và có thể đối chiếu chéo với nguồn khác tại một vài mốc quan trọng hay không.
Từng câu hỏi này được phân tích chi tiết trong các bài Cluster thuộc cụm nghiên cứu dữ liệu của Stockup, lần lượt đi sâu vào phương pháp roll, kỹ thuật điều chỉnh giá, các bẫy dữ liệu cụ thể, và cách đánh giá độ tin cậy của nguồn dữ liệu. Không có bài nào trong số đó thay thế được việc người kiểm định tự áp dụng checklist này vào chính bộ dữ liệu mình đang dùng — vì mỗi nguồn dữ liệu, mỗi công cụ ghép chuỗi có thể mắc phải một tổ hợp bẫy khác nhau.
Câu hỏi thường gặp về chuỗi hợp đồng liên tục VN30F1M
Chuỗi hợp đồng liên tục khác gì dữ liệu của một hợp đồng VN30F1M cụ thể?
Dữ liệu một hợp đồng chỉ có khoảng 1 tháng giao dịch trước khi đáo hạn; chuỗi liên tục nối nhiều hợp đồng kế tiếp qua các lần roll để tạo thành dãy giá đủ dài phục vụ backtest chiến lược dài hạn, khác về bản chất với dữ liệu một mã hợp đồng đơn lẻ.
Ghép chuỗi sai thì backtest có báo lỗi không?
Không. Một chuỗi ghép sai vẫn chạy được bình thường qua mọi công cụ backtest và cho ra số liệu, không có cảnh báo kỹ thuật nào — sai số nằm ở nội dung dữ liệu, không phải ở việc chương trình chạy được hay không.
Có bao nhiêu nhóm bẫy dữ liệu chính khi ghép chuỗi VN30F1M?
Ba nhóm chính: chọn ngày roll không nhất quán, không điều chỉnh giá tại điểm roll (hoặc điều chỉnh sai), và bỏ sót thay đổi mã hợp đồng/nguồn dữ liệu theo thời gian.
Vì sao cần chọn ngày roll cụ thể thay vì cứ đợi đến ngày đáo hạn?
Thanh khoản và độ ổn định giá thường giảm trong những phiên cuối trước đáo hạn; phần lớn phương pháp ghép chuỗi chọn roll trước đáo hạn vài phiên theo tiêu chí xác định để tránh vùng dữ liệu kém tin cậy này.
Có cần biết ghép chuỗi mới backtest được không?
Nếu tự tải dữ liệu thô và ghép tay thì cần hiểu các bẫy này; nếu dùng dữ liệu đã được ghép sẵn bởi một nguồn cụ thể, vẫn nên biết nguồn đó dùng phương pháp gì để đánh giá độ tin cậy của kết quả kiểm định.
Bẫy dữ liệu nào khó phát hiện nhất?
Bẫy do đổi mã hợp đồng (như mốc chuyển hệ thống KRX) thường khó phát hiện nhất vì không tạo lỗi chương trình, chỉ tạo một bước nhảy giá hoặc khoảng trống dữ liệu đúng một mốc thời gian cụ thể mà người kiểm định phải chủ động tìm mới thấy.
Nguồn tham khảo
- HNX – Quy chế niêm yết và giao dịch hợp đồng tương lai chỉ số VN30 – hnx.vn – truy cập 30/08/2026
Lưu ý rủi ro: Nội dung trong bài mang tính giáo dục về phương pháp luận xử lý dữ liệu, không phải khuyến nghị đầu tư hay hướng dẫn giao dịch cụ thể. Mọi ví dụ số học trong bài dùng chuỗi giả định, không phải giá VN30F1M thật; bài không kết luận một phương pháp ghép chuỗi/điều chỉnh giá cụ thể "tốt hơn" theo nghĩa sinh lời, chỉ so sánh về tính đúng đắn kỹ thuật của dữ liệu.
Xem chi tiết từng bẫy dữ liệu ở các bài phương pháp chọn ngày roll, back-adjustment so với giá thô, và mã hợp đồng KRX làm đứt chuỗi dữ liệu. Muốn nhận danh sách kiểm tra nhanh trước khi tin vào một kết quả backtest? Đăng ký bản tin StockUp để nhận các bài phân tích phương pháp luận dữ liệu phái sinh.
