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

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

Dữ liệu

Lọc Dữ Liệu Nhiễu (Bad Tick, Outlier) Trong Dữ Liệu Lịch Sử VN30F1M Trước Khi Backtest

Bad tick và outlier trong dữ liệu lịch sử VN30F1M có thể tạo tín hiệu giả cho backtest nếu không được nhận diện và xử lý đúng cách trước khi dùng.

Tuan Nguyen

Tuan Nguyen

Lọc Dữ Liệu Nhiễu (Bad Tick, Outlier) Trong Dữ Liệu Lịch Sử VN30F1M Trước Khi Backtest

Bad tick và outlier là các bản ghi giá bất thường (do lỗi truyền dữ liệu, giá đặt nhầm, hoặc biến động cực đoan hợp lệ) xuất hiện trong dữ liệu tick/giá lịch sử. Nếu không được nhận diện và xử lý trước khi ghép vào chuỗi liên tục, các bản ghi này có thể tạo tín hiệu giao dịch giả trong backtest.

Định nghĩa đầy đủ

Lọc dữ liệu nhiễu là quy trình nhận diện và xử lý các bản ghi giá bất thường (outlier/bad tick) trong dữ liệu lịch sử — có thể do lỗi kỹ thuật khi truyền/ghi nhận dữ liệu hoặc do biến động thị trường cực đoan nhưng có thật — trước khi đưa dữ liệu vào chuỗi hợp đồng liên tục dùng cho backtest, nhằm tránh các chỉ báo/tín hiệu bị bóp méo bởi những điểm dữ liệu không đại diện cho hành vi giá bình thường.

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

  • Bad tick (lỗi kỹ thuật khi ghi nhận/truyền dữ liệu) và biến động cực đoan có thật là hai nguyên nhân khác nhau nhưng có thể biểu hiện giống nhau trong dữ liệu thô.
  • Phương pháp lọc phổ biến gồm đặt ngưỡng độ lệch so với giá lân cận, đối chiếu nhiều nguồn dữ liệu, và kiểm tra thủ công các điểm nghi ngờ.
  • Lọc quá tay có thể vô tình loại bỏ cả những phiên biến động mạnh nhưng có thật, làm chiến lược backtest trông "mượt" hơn thực tế thị trường.
  • Lọc outlier là bước xử lý nhiễu ở tầng dữ liệu thô, khác với xử lý bước nhảy giá có hệ thống tại điểm roll do basis — hai loại hiện tượng khác nguồn gốc.
  • Không có ngưỡng lọc "đúng tuyệt đối" áp dụng cho mọi bộ dữ liệu — ngưỡng cần điều chỉnh theo đặc tính thanh khoản và biến động của từng giai đoạn dữ liệu.

Outlier do lỗi kỹ thuật khác gì biến động cực đoan có thật

Một bản ghi giá bất thường trong dữ liệu tick có thể xuất phát từ hai nguồn hoàn toàn khác nhau. Thứ nhất là lỗi kỹ thuật — giá đặt nhầm, lỗi truyền dữ liệu, hoặc lỗi ghi nhận tại nguồn — tạo ra một điểm dữ liệu không phản ánh giao dịch thật. Thứ hai là biến động thị trường cực đoan nhưng có thật, ví dụ một phiên giá biến động mạnh do tin tức bất ngờ. Cả hai đều xuất hiện dưới dạng một điểm giá lệch xa so với các điểm lân cận, khiến việc phân biệt chúng bằng mắt thường không đơn giản.

Sự khác biệt quan trọng nằm ở hệ quả nếu xử lý sai: loại bỏ nhầm một biến động thật khỏi dữ liệu khiến chiến lược backtest không được kiểm định qua đúng mức độ rủi ro thị trường từng xảy ra, trong khi giữ lại một bad tick kỹ thuật có thể khiến chỉ báo phát ra tín hiệu dựa trên một mức giá chưa từng thực sự giao dịch. Cả hai loại sai sót đều làm sai lệch kết luận cuối cùng của backtest, chỉ theo hai hướng khác nhau.

Các dấu hiệu phổ biến để nhận diện bad tick

Dấu hiệu thường gặp nhất là sự không tương xứng giữa mức giá bất thường và khối lượng khớp đi kèm: biến động thị trường có thật thường đi kèm khối lượng khớp tương ứng, trong khi bad tick kỹ thuật thường xuất hiện đơn lẻ với khối lượng rất thấp hoặc gần như bằng 0. Một dấu hiệu khác là mức giá quay trở lại bình thường ngay lập tức sau đó, không để lại ảnh hưởng kéo dài lên xu hướng giá.

Phương pháp lọc phổ biến — ngưỡng độ lệch, so sánh nhiều nguồn, kiểm tra thủ công

Có ba nhóm phương pháp lọc thường được kết hợp với nhau:

  1. Ngưỡng độ lệch: đặt một ngưỡng chênh lệch tối đa so với giá lân cận (ví dụ theo phần trăm hoặc theo số lần độ lệch chuẩn), bản ghi vượt ngưỡng được đánh dấu để xem xét thêm.
  2. Đối chiếu nhiều nguồn dữ liệu: so sánh cùng thời điểm giữa nhiều nguồn dữ liệu độc lập; nếu chỉ một nguồn ghi nhận mức giá bất thường trong khi các nguồn khác không có, khả năng cao đây là lỗi ghi nhận tại nguồn đó.
  3. Kiểm tra thủ công: với các điểm nghi ngờ quan trọng (ví dụ ảnh hưởng lớn đến kết quả backtest), xem xét trực tiếp bối cảnh thị trường tại thời điểm đó thay vì chỉ dựa vào quy tắc tự động.

Rủi ro khi lọc quá tay — vô tình xoá cả biến động thật

Một rủi ro dễ bị bỏ qua là lọc quá mức cần thiết. Nếu ngưỡng lọc đặt quá chặt, những phiên biến động mạnh nhưng có thật cũng có thể bị loại bỏ theo, khiến dữ liệu sau khi lọc trông "mượt" hơn thực tế thị trường từng có. Hậu quả là kết quả backtest trên dữ liệu đã lọc quá tay có thể đánh giá thấp rủi ro thực tế mà một chiến lược từng phải đối mặt.

Rủi ro này đặc biệt đáng lưu ý khi ngưỡng lọc được điều chỉnh sau khi đã thấy kết quả backtest — ví dụ nới lỏng hoặc siết chặt ngưỡng cho đến khi đường cong lợi nhuận trông đẹp hơn. Đây là một hình thức can thiệp làm mất tính khách quan của quy trình lọc, khác hẳn với việc đặt ngưỡng dựa trên đặc tính thống kê của chính dữ liệu trước khi biết kết quả backtest sẽ ra sao.

Lọc outlier khác gì xử lý bước nhảy giá do roll/basis

Cần phân biệt rõ hai loại hiện tượng dễ nhầm lẫn. Bước nhảy giá tại ngày roll (do basis) là hiện tượng có hệ thống và có nguồn gốc kinh tế thật, xảy ra đúng vào ngày roll đã biết trước — xem phân tích chi tiết ở bài vì sao chuỗi giá nhảy tại ngày roll. Lọc outlier, ngược lại, nhắm vào các bản ghi giá bất thường đơn lẻ do lỗi kỹ thuật, không liên quan đến ngày roll. Hai vấn đề cần được xử lý bằng phương pháp khác nhau: một dùng back-adjustment hoặc quy tắc điều chỉnh giá, một dùng quy trình lọc nhiễu.

Ví dụ minh họa quy trình lọc một bản ghi giá bất thường

Một bản ghi tick cho thấy giá nhảy từ 1.300 lên 1.450 rồi quay lại 1.302 chỉ trong vài giây (số liệu minh họa), trong khi khối lượng khớp tại mức 1.450 gần như bằng 0. Đây là dấu hiệu điển hình của bad tick (giá đặt nhầm/lỗi truyền dữ liệu) hơn là biến động thị trường thật, vì biến động thật thường đi kèm khối lượng khớp tương ứng.

Thời điểm (minh họa)Giá (điểm)Khối lượng khớpĐánh giá
T1.300Bình thườngGiá hợp lệ
T + 1 giây1.450≈ 0Nghi ngờ bad tick
T + 2 giây1.302Bình thườngGiá quay lại bình thường

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

Đây cũng là lý do vì sao lọc dữ liệu nhiễu nên được xem là một bước độc lập trong quy trình chuẩn bị dữ liệu, thực hiện và cố định trước khi bắt đầu thử nghiệm bất kỳ chiến lược nào — tương tự cách quyết định chọn ngày roll hay phương pháp điều chỉnh giá cần được cố định trước, thay vì điều chỉnh linh hoạt theo kết quả backtest mong muốn.

Câu hỏi thường gặp về lọc dữ liệu nhiễu

Làm sao phân biệt outlier do lỗi kỹ thuật với biến động thị trường có thật?

Thường kiểm tra khối lượng khớp đi kèm mức giá bất thường và đối chiếu với các nguồn dữ liệu khác cùng thời điểm; biến động thật thường có khối lượng khớp tương ứng, trong khi bad tick kỹ thuật thường xuất hiện đơn lẻ với khối lượng rất thấp hoặc bằng 0.

Có nên xoá toàn bộ outlier khỏi dữ liệu backtest không?

Không nên xoá một cách máy móc; cần phân biệt outlier do lỗi kỹ thuật (nên loại bỏ) với biến động cực đoan có thật (nên giữ lại vì phản ánh đúng rủi ro thị trường mà chiến lược cần được kiểm định qua).

Ngưỡng lọc outlier phổ biến là bao nhiêu?

Không có một ngưỡng cố định áp dụng chung; ngưỡng thường được đặt dựa trên độ lệch so với biến động trung bình của chính giai đoạn dữ liệu đang xử lý, và cần điều chỉnh theo đặc tính thanh khoản của từng thời kỳ.

Lọc outlier có giải quyết được vấn đề bước nhảy giá tại ngày roll không?

Không. Bước nhảy giá tại ngày roll (do basis) là hiện tượng có hệ thống và có nguồn gốc kinh tế thật, trong khi lọc outlier nhắm vào các bản ghi giá bất thường đơn lẻ do lỗi kỹ thuật — hai vấn đề cần xử lý bằng phương pháp khác nhau.

Lọc dữ liệu nhiễu có làm mất tính khách quan của backtest không?

Nếu tiêu chí lọc được xác định trước và áp dụng nhất quán (không điều chỉnh riêng để chiến lược cho kết quả tốt hơn), việc lọc outlier kỹ thuật hợp lý là cần thiết để dữ liệu phản ánh đúng hành vi thị trường, không làm mất tính khách quan.

Nguồn tham khảo

  • Phát hiện outlier trong dữ liệu tick tài chính là nội dung thuộc phương pháp luận định lượng phổ biến trong ngành phân tích dữ liệu giao dịch

Lưu ý rủi ro: Nội dung trong bài mang tính giáo dục về quy trình xử lý dữ liệu, không phải khuyến nghị đầu tư. Bài không hướng dẫn cách "làm mượt" dữ liệu để một chiến lược cụ thể trông có lãi hơn; mục tiêu lọc nhiễu là phản ánh đúng thị trường, không phải cải thiện kết quả backtest.

Xem thêm bài méo giá cộng dồn do back-adjustmentlook-ahead bias khi dùng danh mục VN30 hiện tại. Muốn nhận checklist làm sạch dữ liệu trước khi backtest? Đăng ký bản tin StockUp để cập nhật 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ả