Cách xây dựng Data Dictionary giúp đội Quant nghiên cứu nhanh và nhất quán
Data Dictionary
Phần 1. Bối cảnh, khái niệm và vai trò trong nghiên cứu định lượng
Trong nghiên cứu định lượng, dữ liệu là nền tảng của mọi mô hình và chiến lược đầu tư. Tuy nhiên, một vấn đề thường gặp là các nhà nghiên cứu cùng sử dụng dữ liệu của một thị trường nhưng lại cho ra kết quả khác nhau. Nguyên nhân đôi khi không nằm ở phương pháp tính toán mà xuất phát từ cách hiểu và xử lý dữ liệu. Chẳng hạn, hai Quant Researcher cùng nghiên cứu chiến lược mua cổ phiếu có xu hướng tăng giá mạnh trong 20 phiên. Một người sử dụng giá đóng cửa đã điều chỉnh cổ tức, người còn lại sử dụng giá chưa điều chỉnh. Dù cùng áp dụng một phương pháp, kết quả xếp hạng cổ phiếu và kiểm định chiến lược vẫn có thể khác nhau đáng kể.

Data Dictionary được xây dựng để hạn chế những khác biệt như vậy. Có thể hiểu đơn giản đây là một bộ tài liệu giải thích rõ từng trường dữ liệu đang được sử dụng trong hệ thống. Mỗi trường cần có tên gọi, ý nghĩa, đơn vị tính, nguồn cung cấp, thời gian cập nhật và cách xử lý khi có sai lệch. Ví dụ, với trường dữ liệu giá đóng cửa, Data Dictionary phải cho biết đây là giá gốc hay giá đã điều chỉnh, được lấy từ đâu và có được cập nhật lại khi doanh nghiệp chia cổ tức hoặc phát hành thêm cổ phiếu hay không.
Đối với một đội Quant, Data Dictionary tạo ra cách hiểu thống nhất giữa người thu thập dữ liệu, người phát triển mô hình và người kiểm soát rủi ro. Khi một Quant Researcher sử dụng chỉ tiêu thanh khoản bình quân, những người còn lại cần biết chỉ tiêu đó được tính từ giá trị giao dịch khớp lệnh hay bao gồm cả giao dịch thỏa thuận, sử dụng bao nhiêu phiên và xử lý những ngày không có giao dịch như thế nào. Các quy định càng rõ ràng, việc so sánh và kiểm tra kết quả nghiên cứu càng thuận lợi.
Một nội dung đặc biệt quan trọng trong dữ liệu tài chính là thời điểm thông tin thực sự xuất hiện trên thị trường. Giả sử doanh nghiệp công bố báo cáo tài chính quý II vào ngày 15/8. Nếu mô hình sử dụng số liệu lợi nhuận quý II để giả lập quyết định mua cổ phiếu vào ngày 1/7, kết quả nghiên cứu đã sử dụng thông tin mà nhà đầu tư tại thời điểm đó chưa thể biết. Sai lệch này được gọi là look-ahead bias, tức sử dụng dữ liệu tương lai để đánh giá quyết định trong quá khứ. Đây là một trong những nguyên nhân khiến nhiều chiến lược có kết quả kiểm định rất tốt nhưng không đạt hiệu quả tương tự khi giao dịch thực tế.
Vì vậy, Data Dictionary cần ghi nhận rõ kỳ dữ liệu, ngày công bố và thời điểm dữ liệu có thể được sử dụng. Đối với báo cáo tài chính, ngày kết thúc quý không đồng nghĩa với ngày nhà đầu tư biết được kết quả kinh doanh. Đối với giá chứng khoán, dữ liệu cuối ngày chỉ có thể dùng để tạo tín hiệu sau khi thông tin đã được xác nhận và cập nhật. Những khác biệt này ảnh hưởng trực tiếp đến tính chính xác của quá trình kiểm định chiến lược.
Data Dictionary còn có vai trò quan trọng khi đội nghiên cứu mở rộng quy mô. Trong một nhóm nhỏ, nhiều quy tắc xử lý dữ liệu thường nằm trong code hoặc kinh nghiệm của từng cá nhân. Khi nhân sự thay đổi, những người tiếp nhận có thể mất nhiều thời gian tìm hiểu lại cách dữ liệu được thu thập và tính toán. Nếu các quy tắc đã được ghi chép và quản lý thống nhất, thành viên mới có thể sử dụng dữ liệu nhanh hơn và hạn chế việc xây dựng lại những phần đã được hoàn thiện.
Xét về hiệu quả hoạt động, Data Dictionary không trực tiếp tạo ra lợi nhuận đầu tư. Giá trị của nó nằm ở việc giảm thời gian chuẩn bị dữ liệu, hạn chế sai sót và tăng khả năng kiểm chứng kết quả nghiên cứu. Khi đội Quant thực hiện nhiều nghiên cứu trên cùng một hệ thống dữ liệu, việc chuẩn hóa từ đầu giúp tiết kiệm đáng kể nguồn lực và tạo điều kiện để các kết quả có thể được tiếp tục sử dụng trong những nghiên cứu sau.
Phần 2. Phương pháp xây dựng và triển khai trong thực tế
Để xây dựng Data Dictionary hiệu quả, đội Quant nên bắt đầu từ những dữ liệu được sử dụng thường xuyên nhất. Với nghiên cứu cổ phiếu Việt Nam, nhóm có thể ưu tiên dữ liệu giá, khối lượng giao dịch, vốn hóa, số lượng cổ phiếu lưu hành, báo cáo tài chính và lịch sử niêm yết. Đây là những thông tin cơ bản phục vụ nhiều phương pháp nghiên cứu, từ phân tích xu hướng giá đến định giá doanh nghiệp và đánh giá rủi ro.
Giả sử một nhóm đang phát triển hệ thống xếp hạng cổ phiếu VN100 dựa trên ba yếu tố gồm xu hướng giá, tăng trưởng lợi nhuận và thanh khoản. Trước khi xây dựng mô hình, nhóm cần thống nhất cách hiểu từng yếu tố. Với xu hướng giá, phải xác định sử dụng giá đã điều chỉnh hay chưa điều chỉnh. Với tăng trưởng lợi nhuận, cần làm rõ sử dụng số liệu hợp nhất hay riêng lẻ và thời điểm báo cáo được công bố. Với thanh khoản, phải thống nhất sử dụng khối lượng hay giá trị giao dịch và có tính giao dịch thỏa thuận hay không. Khi tất cả sử dụng cùng một định nghĩa, việc so sánh kết quả giữa các nhà nghiên cứu mới thực sự có ý nghĩa.
Mỗi trường dữ liệu nên được mô tả ngắn gọn nhưng đủ thông tin để người khác có thể sử dụng mà không cần hỏi lại người xây dựng. Chẳng hạn, trường giá đóng cửa cần thể hiện đơn vị tính, nguồn, phương pháp điều chỉnh và thời gian cập nhật. Trường lợi nhuận sau thuế cần xác định rõ loại báo cáo, đơn vị tiền tệ và cách xử lý khi doanh nghiệp công bố báo cáo điều chỉnh. Ngoài ra, nên ghi nhận người chịu trách nhiệm để khi phát hiện bất thường, nhóm biết cần liên hệ với ai để kiểm tra.
Trong quá trình triển khai, dữ liệu nên được tổ chức thành các lớp riêng biệt. Lớp đầu tiên lưu dữ liệu gốc nhận từ nhà cung cấp. Lớp tiếp theo thực hiện kiểm tra, chuẩn hóa đơn vị, loại bỏ bản ghi trùng và xác định những giá trị không hợp lệ. Lớp cuối cùng cung cấp dữ liệu đã được xử lý cho các mô hình nghiên cứu. Cách tổ chức này giúp nhóm dễ dàng truy tìm nguyên nhân khi một chỉ tiêu bất ngờ thay đổi. Nếu kết quả tính toán sai, có thể đối chiếu từng bước để xác định sai lệch đến từ dữ liệu gốc hay quá trình xử lý.
Một ví dụ dễ gặp là sự khác biệt về đơn vị dữ liệu tài chính. Có nguồn cung cấp doanh thu theo đơn vị đồng, trong khi nguồn khác sử dụng triệu đồng. Nếu hệ thống không quy đổi thống nhất, cùng một doanh nghiệp có thể xuất hiện những giá trị chênh lệch rất lớn. Khi đó, mô hình định giá hoặc xếp hạng doanh nghiệp có thể đưa ra kết quả sai dù toàn bộ chương trình vẫn chạy bình thường. Data Dictionary cần quy định đơn vị chuẩn và cách chuyển đổi ngay từ đầu để hạn chế những sai sót này.
Bên cạnh việc mô tả dữ liệu, nhóm cần xây dựng những kiểm tra chất lượng tự động. Một hệ thống dữ liệu chứng khoán có thể theo dõi hàng trăm mã mỗi ngày, nên việc kiểm tra thủ công từng bản ghi sẽ tốn nhiều thời gian. Các kiểm tra cơ bản có thể bao gồm phát hiện dữ liệu thiếu, bản ghi trùng, giá trị bất thường, sai kiểu dữ liệu và cập nhật chậm so với lịch dự kiến. Những kiểm tra này nên được thực hiện ngay sau khi hệ thống nhận dữ liệu, trước khi dữ liệu được sử dụng trong nghiên cứu.
Chẳng hạn, hệ thống dự kiến cập nhật dữ liệu cho 100 cổ phiếu nhưng cuối ngày mới nhận được 96 mã. Nếu nhóm quy định tỷ lệ đầy đủ tối thiểu là 99%, dữ liệu của phiên đó chưa đạt yêu cầu. Hệ thống cần xác định bốn mã còn thiếu và kiểm tra nguyên nhân. Có thể nguồn dữ liệu gặp lỗi, cổ phiếu bị tạm ngừng giao dịch hoặc có thay đổi về trạng thái niêm yết. Mỗi trường hợp cần được xử lý phù hợp. Việc tự động dùng giá phiên trước để thay thế toàn bộ dữ liệu thiếu có thể khiến mô hình hiểu nhầm rằng giá cổ phiếu không biến động.
Tương tự, với dữ liệu báo cáo tài chính, một ô trống không phải lúc nào cũng là lỗi. Doanh nghiệp có thể chưa công bố báo cáo, một chỉ tiêu không áp dụng cho loại hình doanh nghiệp đó hoặc nguồn cung cấp chưa hoàn tất cập nhật. Data Dictionary cần phân biệt những trường hợp này. Nếu toàn bộ giá trị trống đều được thay bằng số 0, hệ thống có thể vô tình biến dữ liệu chưa có thành một kết quả kinh doanh thực tế, làm sai lệch việc phân tích doanh nghiệp.
Một vấn đề khác là thay đổi dữ liệu lịch sử. Ví dụ, doanh nghiệp công bố báo cáo tài chính rồi sau đó điều chỉnh lại lợi nhuận. Nếu hệ thống chỉ lưu số liệu mới nhất, nhà nghiên cứu sẽ khó xác định tại thời điểm trước khi điều chỉnh, thị trường thực sự có những thông tin gì. Vì vậy, với các dữ liệu có thể được công bố lại, cần giữ lịch sử phiên bản và thời điểm từng phiên bản xuất hiện. Điều này đặc biệt hữu ích khi nghiên cứu tác động của thông tin tài chính đến giá cổ phiếu.
Đối với nhóm Quant quy mô nhỏ, Data Dictionary không nhất thiết phải được triển khai bằng một hệ thống phần mềm phức tạp. Một file Excel quản lý tập trung cũng có thể là điểm khởi đầu, miễn là có quy định rõ về người cập nhật và lịch sử thay đổi. Khi hệ thống phát triển, nhóm có thể chuyển sang lưu định nghĩa dữ liệu bằng YAML hoặc quản lý trên Git để theo dõi phiên bản. Những công cụ như dbt và OpenMetadata cũng có thể được sử dụng khi cần mở rộng khả năng kiểm tra chất lượng, quản lý nguồn dữ liệu và theo dõi những bảng đang phụ thuộc lẫn nhau.
Trong thực tế, nên triển khai theo từng giai đoạn. Thời gian đầu có thể chọn khoảng 20 đến 30 trường dữ liệu quan trọng nhất, hoàn thiện định nghĩa và kiểm tra chất lượng. Sau đó, nhóm sử dụng bộ dữ liệu này cho một hoặc hai nghiên cứu thực tế để phát hiện các quy tắc còn thiếu. Khi quy trình hoạt động ổn định, mới mở rộng sang những nhóm dữ liệu khác. Cách triển khai này giúp tránh tình trạng dành quá nhiều thời gian xây dựng tài liệu nhưng chưa tạo được giá trị trong công việc nghiên cứu.
Hiệu quả của Data Dictionary cũng cần được đo lường. Chẳng hạn, trước khi chuẩn hóa, một Quant Researcher thường mất vài ngày tìm nguồn, xử lý và kiểm tra dữ liệu cho một nghiên cứu mới. Sau khi có bộ dữ liệu chung, thời gian chuẩn bị có thể được rút ngắn. Nhóm nên theo dõi thời gian chuẩn bị nghiên cứu, số lỗi dữ liệu phát hiện được, số lần phải chạy lại mô hình do sai dữ liệu và khả năng tái lập kết quả nghiên cứu. Những chỉ số này phản ánh trực tiếp mức độ hữu ích của Data Dictionary trong hoạt động hằng ngày.
Phần 3. Rủi ro, kiểm soát và cách áp dụng lâu dài
Khó khăn lớn nhất khi xây dựng Data Dictionary không nằm ở việc mô tả dữ liệu ban đầu mà ở khả năng duy trì tính chính xác theo thời gian. Dữ liệu tài chính thường xuyên có thay đổi, từ điều chỉnh báo cáo doanh nghiệp đến cập nhật phương pháp tính của nhà cung cấp. Nếu dữ liệu thực tế đã thay đổi nhưng tài liệu vẫn giữ nguyên định nghĩa cũ, những người sử dụng có thể tiếp tục nghiên cứu trên các giả định không còn phù hợp.
Một tình huống đáng chú ý là khi nhà cung cấp thay đổi ý nghĩa của trường dữ liệu nhưng không thay đổi tên cột. Ví dụ, một trường trước đây thể hiện lợi nhuận sau thuế hợp nhất, sau khi cập nhật lại chuyển thành lợi nhuận thuộc về cổ đông công ty mẹ. Nếu hệ thống không nhận diện được thay đổi này, các nghiên cứu tăng trưởng lợi nhuận hoặc định giá có thể sử dụng hai loại số liệu khác nhau trong cùng một chuỗi lịch sử. Sai lệch càng khó phát hiện khi chương trình vẫn hoạt động và không xuất hiện thông báo lỗi.
Để kiểm soát, mọi thay đổi quan trọng cần được ghi nhận và có người xác nhận trước khi áp dụng. Khi phát hiện bất thường, Data Engineer kiểm tra nguồn dữ liệu và quá trình cập nhật. Quant Researcher đánh giá xem thay đổi đó ảnh hưởng đến những chỉ tiêu hoặc chiến lược nào. Nếu cần thay đổi định nghĩa, hệ thống phải lưu lại phiên bản cũ và thời điểm áp dụng phiên bản mới. Nhờ vậy, nhóm vẫn có thể chạy lại những nghiên cứu đã thực hiện trước đó bằng đúng dữ liệu và quy tắc ban đầu.
Không phải mọi lỗi dữ liệu đều có mức độ nghiêm trọng như nhau. Một trường thông tin phụ bị thiếu có thể chỉ ảnh hưởng đến phần hiển thị, nhưng lỗi ở giá chứng khoán, số lượng cổ phiếu lưu hành hoặc thời điểm công bố báo cáo tài chính có thể làm thay đổi trực tiếp tín hiệu đầu tư. Vì vậy, đội Quant cần xác định những dữ liệu quan trọng nhất để ưu tiên giám sát. Khi phát hiện lỗi ở nhóm dữ liệu này, hệ thống nên cảnh báo, ngừng sử dụng phần dữ liệu không hợp lệ hoặc tạm dừng phát hành tín hiệu bị ảnh hưởng cho đến khi hoàn tất kiểm tra.
Ví dụ, một mô hình đang xếp hạng 100 cổ phiếu dựa trên nhiều yếu tố. Nếu dữ liệu giá của một mã chưa cập nhật, nhóm cần biết sự thiếu hụt đó ảnh hưởng đến riêng mã chứng khoán hay cả quá trình xếp hạng. Trong một số trường hợp, có thể tạm loại mã thiếu dữ liệu khỏi danh sách nghiên cứu. Trong trường hợp khác, việc loại bỏ lại làm thay đổi cấu trúc danh mục hoặc tạo sai lệch so với quy tắc ban đầu. Vì vậy, cách xử lý phải được quy định trước và phù hợp với mục tiêu của từng nghiên cứu.
Một lợi ích thực tế khác của Data Dictionary là hỗ trợ quá trình kiểm tra khi kết quả mô hình thay đổi bất thường. Giả sử chiến lược momentum đang có kết quả tương đối ổn định nhưng sau một lần cập nhật dữ liệu, hiệu quả backtest giảm mạnh. Nếu không có lịch sử dữ liệu và phiên bản xử lý, nhóm có thể mất nhiều thời gian kiểm tra lại toàn bộ mô hình. Khi có Data Dictionary, người nghiên cứu có thể xác định những trường vừa được điều chỉnh, nguồn dữ liệu có thay đổi hay không và các quy tắc xử lý có còn giống phiên bản trước. Việc xác minh nguyên nhân trở nên nhanh chóng và có căn cứ hơn.
Để minh họa cách áp dụng, có thể xét một đội Quant gồm ba nhà nghiên cứu và một Data Engineer. Ban đầu, mỗi người có bộ dữ liệu riêng và tự xây dựng các chỉ tiêu phục vụ chiến lược. Sau một thời gian, nhóm nhận thấy nhiều công việc bị lặp lại, đặc biệt là thu thập giá điều chỉnh, xử lý báo cáo tài chính và tính thanh khoản bình quân. Việc chuyển sang một bộ dữ liệu chung được quản lý bằng Data Dictionary sẽ giúp cả nhóm giảm thời gian xử lý và hạn chế khác biệt không cần thiết giữa các nghiên cứu.
Trong tháng đầu tiên, nhóm có thể tập trung rà soát các trường dữ liệu đang được sử dụng nhiều nhất, thống nhất định nghĩa, xác định nguồn và thiết lập kiểm tra chất lượng. Sau đó, lựa chọn một nghiên cứu cũ để chạy lại bằng bộ dữ liệu đã chuẩn hóa. Nếu kết quả thay đổi, nhóm cần giải thích rõ nguyên nhân đến từ giá điều chỉnh, lịch sử cổ phiếu, thời điểm dữ liệu khả dụng hay một quy tắc khác. Đây là bước kiểm tra có giá trị vì giúp xác nhận những định nghĩa mới thực sự phù hợp trước khi áp dụng rộng rãi.
Khi Data Dictionary đã đi vào hoạt động, việc cập nhật cần trở thành một phần của quy trình phát triển dữ liệu. Mỗi lần bổ sung nguồn mới, tạo một trường dữ liệu mới hoặc thay đổi phương pháp xử lý, người thực hiện cần cập nhật tài liệu tương ứng. Những trường không còn sử dụng cũng nên được rà soát định kỳ để tránh khiến hệ thống ngày càng phức tạp. Việc quản lý này không đòi hỏi quá nhiều thủ tục, nhưng phải bảo đảm không có thay đổi quan trọng nào được đưa vào sử dụng mà thiếu thông tin giải thích.
Về lâu dài, Data Dictionary còn giúp đội Quant xây dựng thư viện dữ liệu và các chỉ tiêu nghiên cứu có thể dùng lại. Những biến như động lượng giá, biến động lợi suất, tăng trưởng lợi nhuận hoặc khả năng thanh khoản có thể được chuẩn hóa và cung cấp cho nhiều chiến lược. Khi mỗi biến đều có định nghĩa rõ ràng, nhóm có thể tập trung vào việc kiểm tra giả thuyết đầu tư và đánh giá kết quả, đồng thời giảm nguy cơ mỗi nhà nghiên cứu phát triển một cách tính khác nhau cho cùng một chỉ tiêu.
Dù vậy, Data Dictionary không thể thay thế hoàn toàn việc kiểm tra và đánh giá dữ liệu của nhà nghiên cứu. Một bộ dữ liệu đáp ứng đầy đủ các quy tắc kỹ thuật vẫn có thể không phù hợp với một câu hỏi nghiên cứu cụ thể. Chẳng hạn, dữ liệu giá đã điều chỉnh có thể phù hợp để nghiên cứu lợi suất lịch sử nhưng không thể được sử dụng tùy tiện như mức giá khớp lệnh thực tế. Tương tự, dữ liệu tài chính đã chuẩn hóa vẫn cần được xem xét về thời điểm công bố và khả năng so sánh giữa các doanh nghiệp. Data Dictionary giúp làm rõ các điều kiện sử dụng, còn nhà nghiên cứu phải quyết định dữ liệu có phù hợp với mục tiêu phân tích hay không.
Từ góc độ quản lý, một bộ Data Dictionary tốt không nhất thiết phải có hàng nghìn trường dữ liệu hoặc sử dụng những công cụ đắt tiền. Điều quan trọng là những trường đang được sử dụng phải có định nghĩa chính xác, nguồn rõ ràng, quy tắc kiểm tra phù hợp và người chịu trách nhiệm. Một hệ thống nhỏ nhưng được duy trì thường xuyên có thể hữu ích hơn nhiều so với một kho tài liệu lớn nhưng không được cập nhật.
Có thể thấy, Data Dictionary đem lại giá trị rõ nhất khi được gắn trực tiếp với công việc nghiên cứu hằng ngày. Nó giúp người mới tiếp cận dữ liệu nhanh hơn, giúp các nhà nghiên cứu sử dụng chung một quy chuẩn và giúp đội kỹ thuật phát hiện sai lệch trước khi dữ liệu đi vào mô hình. Quan trọng hơn, khi có sự thay đổi về nguồn hoặc cách xử lý, nhóm có thể xác định được phạm vi ảnh hưởng và kiểm tra lại kết quả một cách có hệ thống.
Trong Quant Research, tốc độ nghiên cứu không chỉ phụ thuộc vào khả năng lập trình hay hiệu năng tính toán. Một phần đáng kể thời gian còn nằm ở việc tìm kiếm, làm sạch, đối chiếu và xác minh dữ liệu. Khi những công việc này được chuẩn hóa thông qua Data Dictionary, đội Quant có thể dành nhiều nguồn lực hơn cho việc phát triển ý tưởng, kiểm định chiến lược và đánh giá rủi ro. Đây chính là giá trị thực tế và lâu dài của Data Dictionary đối với một hệ thống nghiên cứu định lượng.
