Phần này trình bày những khía cạnh khác nhau của dữ liệu trong giao dịch thuật toán. Ðầu tiên sẽ đề cập đến hai nhóm dữ liệu và những nguyên tắc khi thu thập dữ liệu, sau đó, vấn đề trong quản lý dữ liệu sẽ được thảo luận.
Hai nhóm dữ liệu trong giao dịch thuận toán
Về cơ bản, có hai nhóm dữ liệu chính trong giao dịch thuật toán, dữ liệu giao dịch đầu vào (dữ liệu thị trường, dữ liệu tài chính, dữ liệu hàng hóa, v.v.) và dữ liệu giao dịch đầu ra (dữ liệu giao dịch thuật toán). Trong một số trường hợp, dữ liệu giao dịch đầu ra của một thuật toán có thể làm đầu vào cho một thuật toán khác.
-
Dữ liệu giao dịch đầu vào bao gồm nhưng không giới hạn tất cả dữ liệu chuẩn trong giao dịch thuật toán đã được trình bày ở bài 26 quyển sách này, chẳng hạn dữ liệu thị trường của một công cụ tài chính theo thời gian thực. Dữ liệu giao dịch theo thời gian thực có thể di chuyển với tốc độ khác nhau tùy thuộc độ lớn thị trường.
-
Dữ liệu giao dịch đầu ra là dữ liệu được sinh ra khi hệ thống giao dịch thuật toán vận hành. Chúng có thể là tín hiệu mua bán tính toán dựa trên dữ liệu giao dịch đầu vào hoặc là thông tin đặt lệnh của thuật toán. Trong khi dữ liệu giao dịch đầu vào dùng để vận hành thuật toán, thì dữ liệu sinh ra trong quá trình giao dịch chủ yếu để giám sát thuật toán. Ngoài ra, dữ liệu giao dịch thuật toán cũng được dùng để nghiên cứu, phát triển thuật toán mới. Trong lúc vận hành, cần lưu ý chỉ lưu vết những thông tin quan trọng để không làm quá tải người vận hành hệ thống cũng như tối ưu không gian lưu trữ dữ liệu.
Hai nhóm dữ liệu trong giao dịch thuận toán
Ðộ trễ và độ hoàn chỉnh của dữ liệu là hai vấn đề chính khi chọn nguồn thu thập dữ liệu. Trong khi đó, việc đưa ra được những khái niệm đúng và làm chủ công nghệ là tối quan trọng trong việc thu thập và quản lý dữ liệu.
Ðộ trễ
ộ trễ của dữ liệu là khoảng thời gian sai biệt giữa thời điểm dữ liệu được tạo ra và thời điểm thuật toán nhận được thông tin đó. Ðộ trễ là khía cạnh then chốt của dữ liệu giao dịch theo thời gian thực, bất kể độ lớn của thị trường.Nhà đầu tư cần quan tâm đến độ lớn của dữ liệu khi độ lớn của thị trường tăng lên, tuy nhiên, độ trễ luôn có mức độ ưu tiên cao hơn. Lý do rất đơn giản, ở cả hai trường hợp, thị trường lớn và nhỏ, nếu độ trễ của dữ liệu là rất lớn, thuật toán giao dịch sẽ không tận dụng được những cơ hội tồn tại trên thị trường. Lưu ý rằng, nhà giao dịch thuật toán có thể chấp nhận độ trễ cao hơn ở các dữ liệu giao dịch khác.
Độ trễ có thể giảm thiểu bằng cách tiếp cận nguồn cung cấp dữ liệu giao dịch theo thời gian thực tốt nhất. Do độ trễ của dữ liệu là tiêu chí hàng đầu khi chọn nguồn dữ liệu, sẽ dẫn tới vấn đề chọn nơi đặt hệ thống thu thập dữ liệu (máy chủ vật lý). Bởi giới hạn vùng miền và dịch vụ, nhà đầu tư nên lường trước vấn đề kỹ thuật khi thiết lập và duy trì dịch vụ nhằm tối ưu chi phí khi triển khai hệ thống giao dịch thuật toán về sau.
Ðộ hoàn chỉnh (độ phủ)
Ðộ hoàn chỉnh (hay độ phủ) của dữ liệu tiêu chuẩn là tỷ lệ dữ liệu ghi nhận được từ một nguồn dữ liệu so với dữ liệu thực tế. Ví dụ, thị trường có tổng thời gian giao dịch là 360 phút, nguồn dữ liệu, vì một số hạn chế kỹ thuật, chỉ có thể ghi nhận được 336 phút dữ liệu giao dịch thực tế. Lúc đó, độ hoàn chỉnh của nguồn dữ liệu là 336/360 ~ 93.33%. Ða số các trường hợp, không dễ đo đạc độ phủ của dữ liệu giao dịch theo thời gian thực. Cho nên, việc có nhiều nguồn dữ liệu và kiểm tra chéo với nhau là tối quan trọng.
Lưu trữ và quản lý dữ liệu trong giao dịch thuật toán
Ðưa ra khái niệm đúng
Đầu tiên, cần lưu ý khi lưu trữ dữ liệu không phải là hệ thống lưu trữ, mà là lưu trữ cái gì. Phải đưa ra khái niệm chuẩn cho những gì cần lưu trữ. Vài khái niệm cơ bản cần làm rõ từ đầu như giá, lệnh, tín hiệu, khớp lệnh, v.v. Xác định khái niệm đúng giúp hoạch định và lưu trữ dữ liệu tốt hơn. Cơ sở dữ liệu tốt sẽ góp phần phát triển hệ thống nhanh, trơn tru,linh hoạt, và dễ mở rộng. Ðiều này cũng giúp hệ thống lưu trữ dữ liệu dễ dàng nâng cấp trong tương lai.
Lựa chọn công nghệ
Sau khi xác định đúng khái niệm, việc lựa chọn công nghệ không còn quá quan trọng. Công cụ phù hợp và kỹ năng sử dụng thuần thục công nghệ quan trọng hơn việc chọn công nghệ nào.
Quản lý kho lưu trữ dữ liệu
Có hai dạng kho lưu trữ dữ liệu trong giao dịch thuật toán. Kho lưu trữ tạm thời (cho giao dịch trong ngày) và cơ sở dữ liệu (cho dữ liệu lịch sử giao dịch).
Kho lưu trữ tạm thời. Ðây là kho lưu dữ liệu giao dịch theo thời gian thực (dữ liệu thị trường, dữ liệu chỉ số, dữ liệu hàng hóa). Vì thuật toán phải tiếp cận dữ liệu nhanh nhất có thể, lưu trữ dữ liệu trong kho chứa trên bộ nhớ (in-memory database) hay hệ thống lưu trữ tạm thời (caching system) như Redis là một lựa chọn hợp lý. Có vài vấn đề cần xem xét khi lưu trữ dữ liệu thời gian thực trong hệ thống lưu trữ tạm thời. Ðầu tiên, dữ liệu nên có thời hạn. Vì những dữ liệu này thông thường được dùng cho giao dịch trong ngày, dữ liệu lưu trữ tạm thời của ngày trước đó (hoặc một khoảng thời gian định trước) thường sẽ không còn sử dụng được. Sử dụng dữ liệu không đúng có thể gây hậu quả nghiêm trọng, đặc biệt là thuật toán giao dịch trong ngày. Nên việc kiểm tra sự đúng đắn của dữ liệu (về mặt thời gian) và ấn định hạn sử dụng của dữ liệu là bắt buộc. Nếu dữ liệu của những ngày (giai đoạn) trước cần được truy cập, cơ sở dữ liệu là lựa chọn phù hợp hơn hệ thống lưu trữ tạm thời.
Cơ sở dữ liệu. Khi ngày giao dịch kết thúc, dữ liệu giao dịch trong ngày sẽ được lưu trữ xuống cơ sở dữ liệu để sử dụng lâu dài. Việc lưu trữ này phục vụ nghiên cứu và phát triển thuật toán mới, kiểm nghiệm thuật toán đang vận hành, và cải tiến thuật toán hiện có. Nhiều dạng cơ sở dữ liệu được sử dụng điển hình như Postgres, MySQL, v.v. Theo đó, cơ sở dữ liệu được khai thác bởi công cụ quản lý và khai thác dữ liệu chuyên dụng như ELK (Elastic Search, Logstash, Kibana) để hiển thị, minh hoạ, theo dõi, thống kê, tổng hợp, phân tích, đánh giá dữ liệu lịch sử.