Phân tích hệ thống thu thập dữ liệu để xây dựng bộ máy giao dịch chứng khoán tự động
Thời gian qua, thị trường chứng khoán (TTCK) Việt Nam tiếp tục được tái cấu trúc, phát triển với nhiều bước tiến đáng kể.
Tóm tắt:
- Một số tồn tại, hạn chế nội tại của TTCK: Sản phẩm trên TTCK vẫn chưa đa dạng; nhà đầu tư cá nhân chưa được trang bị đầy đủ kiến thức về pháp luật, hiểu biết về thị trường hạn chế, chưa có các công cụ hỗ trợ phù hợp, thực hiện mua bán theo tin đồn vẫn chiếm đa số;…
- Trung tâm Lưu ký chứng khoán (TTLKCK) Việt Nam đang thử nghiệm hệ thống KRX - hệ thống quản lý và điều hành giao dịch nhằm tạo điều kiện triển khai các sản phẩm, dịch vụ mới trên TTCK và bảo đảm cho thị trường vận hành thông suốt, liên tục, an toàn, chuyên nghiệp hơn.
- Để khai thác đặc điểm mới này của hệ thống KRX, một hệ thống giao dịch chứng khoán hoàn toàn tự động cần được phát triển.
Bên cạnh việc tập trung hoàn thiện khung pháp lý để tạo nền móng phát triển thị trường phù hợp với sự phát triển của nền kinh tế và tiếp cận chuẩn mực quốc tế; đã thành lập một Sở giao dịch chứng khoán (SGDCK) thống nhất thông qua việc thành lập và chính thức đưa vào hoạt động của SGDCK Việt Nam nhằm phát huy hiệu quả hoạt động, nâng cao vị thế và quy mô cạnh tranh của thị trường; giảm số lượng công ty chứng khoán hoạt động yếu kém, nâng cao chất lượng hoạt động công ty hiện có; tái cấu trúc cổ đông các Công ty quản lý Quỹ thông qua việc chuyển dịch từ các cổ đông cá nhân sang các cổ đông là các tổ chức tài chính lớn trong nước và quốc tế, có tình hình tài chính lành mạnh và năng lực trong công tác quản trị công ty; thực hiện công tác cải cách hành chính, tạo điều kiện thuận lợi cho nhà đầu tư, đặc biệt thông qua các quỹ đầu tư nhằm thúc đẩy phát triển các nhà đầu tư chuyên nghiệp hơn…
Về phát triển cơ sở hạ tầng, nhiều biện pháp cũng đã được triển khai nhằm giải quyết tình trạng nghẽn lệnh trên SGDCK TP. Hồ Chí Minh thời gian gần đây như nâng lô giao dịch, kiểm soát hệ thống, hạn chế lỗi giao dịch, tối ưu hoá lượng lệnh, áp dụng eKYC trong việc mở tài khoản chứng khoán, rút ngắn thời gian thanh toán giao dịch chứng khoán (cổ phiếu, chứng chỉ quỹ, chứng quyền có bảo đảm) về T+2, triển khai giao dịch chứng khoán lô lẻ tại SGDCK TP. Hồ Chí Minh góp phần tăng thanh khoản, tăng tính hấp dẫn của TTCK Việt Nam đối với nhà đầu tư trong và ngoài nước…
TTCK Việt Nam đã dần trở thành kênh huy động vốn trung và dài hạn quan trọng cho nền kinh tế. Giá trị huy động vốn của doanh nghiệp thông qua phát hành cổ phiếu, trái phiếu doanh nghiệp (TPDN) năm 2021 đạt gần 731.349 tỷ đồng (trong đó giá trị huy động vốn thông qua phát hành cổ phiếu đạt gần 95.698 tỷ đồng, qua phát hành TPDN ra công chúng đạt gần 29.766 tỷ đồng, qua phát hành TPDN riêng lẻ là 605.934 tỷ đồng); trong năm 2022, giá trị huy động vốn thông qua phát hành cổ phiếu và TPDN ra công chúng ước đạt 116.684 tỷ đồng.
Mức vốn hóa thị trường cổ phiếu 3 sàn HOSE, HNX và UPCoM ngày 30/6/2023 đạt 5.783 nghìn tỷ đồng, tương đương 60,8% GDP ước tính năm 2022. Đến cuối tháng 6/2023, thị trường có 743 cổ phiếu, chứng chỉ quỹ niêm yết trên 2 SGDCK và 866 cổ phiếu ĐKGD trên UpCom với tổng giá trị niêm yết, ĐKGD đạt 1.997 nghìn tỷ đồng (tương đương 21% GDP ước tính năm 2022).
Số lượng tài khoản nhà đầu tư trên TTCK tăng nhanh. Tổng số lượng tài khoản nhà đầu tư tính đến cuối tháng 6/2023 đạt 7,31 triệu tài khoản, gấp 2,6 lần so với cuối năm 2020 và vượt mức 5% dân số trước 3 năm so với mục tiêu được Chính phủ đưa ra trong Đề án Cơ cấu lại TTCK và bảo hiểm đến năm 2020, định hướng đến năm 2025. Trong đó, số lượng tài khoản nhà đầu tư trong nước đạt trên 7,1 triệu tài khoản, còn lại là tài khoản nhà đầu tư nước ngoài.
Tuy nhiên, một số tồn tại, hạn chế nội tại của thị trường vẫn hiện hữu. Trong đó, các sản phẩm trên TTCK vẫn chưa đa dạng, chủ yếu vẫn là TTCK cơ sở (cổ phiếu niêm yết/đăng ký giao dịch (ĐKGD)), các sản phẩm chứng khoán phái sinh còn hạn chế; nhà đầu tư cá nhân vẫn chiếm đa số trên thị trường cổ phiếu, nhiều nhà đầu tư cá nhân chưa được trang bị đầy đủ kiến thức về pháp luật, hiểu biết về thị trường hạn chế, chưa có các công cụ hỗ trợ phù hợp, thực hiện mua bán theo tin đồn…, dẫn đến giao dịch trên TTCK về cơ bản không ổn định, chủ yếu theo tâm lý nhà đầu tư cá nhân…
(Năm 2021, mức vốn hoá thị trường cổ phiếu 3 sàn HOSE, HNX và UPCoM tăng 46% so với cuối năm 2020, tương đương 122,8% GDP năm 2020; nhưng vào năm 2022 giảm 32,7% so với cuối năm 2021, chỉ tương đương 61,6% GDP năm 2021; đến ngày 30/6/2023 mức vốn hoá thị trường cổ phiếu 3 sàn tăng 10,7% so với cuối năm 2022, tương đương 60,8% GDP ước tính năm 2022).
Kể từ năm 2022 cho đến nay, các SGDCK và Trung tâm Lưu ký chứng khoán (TTLKCK) Việt Nam tập trung xây dựng, thử nghiệm hệ thống KRX - hệ thống công nghệ thông tin quản lý và điều hành giao dịch, để đưa vào vận hành trên TTCK Việt Nam. Hệ thống KRX sẽ tạo điều kiện triển khai các sản phẩm, dịch vụ mới trên TTCK và bảo đảm thị trường vận hành thông suốt, liên tục, an toàn, chuyên nghiệp hơn.
Hệ thống mới này sẽ mở ra nhiều cơ hội cho các nhà đầu tư trong và ngoài nước thông qua nâng hạng thị trường, các công cụ tài chính mới và điều quan trọng nhất là thúc đẩy giao dịch thuật toán, cho phép nhà đầu tư sử dụng chương trình máy tính để thực hiện giao dịch chứng khoán tự động. Lợi dụng điều này, các công ty lớn, như BSC và SSI, đã đưa ra các API (Application Programming Interface) để nhà đầu tư kết nối và biết được những thay đổi chính xác đến từng giây của giá cổ phiếu. Tóm lại, KRX vận hành sẽ giúp TTCK Việt Nam đa dạng hóa các công cụ tài chính, nâng hạng từ TTCK cận biên sang mới nổi, thu hút nguồn vốn lớn từ khối ngoại và đặc biệt là phát triển lĩnh vực giao dịch thuật toán.
Để khai thác đặc điểm mới này của hệ thống KRX, một hệ thống giao dịch chứng khoán hoàn toàn tự động cần được phát triển. Một hệ thống tự động hoá giao dịch chứng khoán sẽ có những phần như sau:
- Hệ thống thu thập dữ liệu TTCK;
- Hệ thống phân tích dữ liệu để đưa ra thông tin đầu vào của chiến thuật giao dịch;
- Hệ thống xây dựng, tìm kiếm, kiểm thử chiến lược giao dịch và phát tín hiệu giao dịch;
- Hệ thống quản lý vốn, rủi ro và kết nối giao dịch với các công ty chứng khoán.
Sự ra đời, phát triển của Hệ thống tự động hoá giao dịch khi thị trường chuyển sang một trình độ phát triển mới với quy mô nguồn vốn, số lượng nhà đầu tư, các công cụ tài chính đa dạng, liên thông khu vực, quốc tế là cần thiết, khách quan, vì:
- Tự động giao dịch hoàn toàn có thể loại bỏ được cảm xúc và định tính của con người trong quá trình đầu tư của nhà đầu tư;
- Giúp giải phóng thời gian và công sức của nhà đầu tư;
- Hệ thống tự động có thể nhanh chóng thích nghi với những biến đổi trong TTCK tương lai;
- Hệ thống tự động sẽ quản lý vốn tốt hơn con người;
- Tăng cường sự cạnh tranh, làm cho TTCK thêm sôi nổi;
- Giảm được ảnh hưởng của những cuộc giao dịch lớn bằng cách chia nhỏ ra, giảm ảnh hưởng lên thị trường nói chung.
Tuy nhiên, để xây dựng và vận hành một hệ thống như vậy cũng không thể không có những khó khăn:
- Hệ thống phân tích phức tạp và cần thời gian xây dựng, chi phí bảo dưỡng, bảo trì, sửa chữa có thể tăng cao;
- Cần đảm bảo tính ổn định, an toàn trong các giao dịch tự động;
- Các sai lệch về dữ liệu có thể xảy ra bất cứ lúc nào, có thể dẫn đến kịch bản giao dịch sai hoặc hệ thống giao dịch không dừng, khi ngừng hoạt động đột xuất có thể gây lỗ;
- Các hệ thống tự động có thể có lỗ hổng về bảo mật;
- Chưa có nhiều nhà đầu tư tin tưởng vào hệ thống giao dịch tự động.
Đồng thời, để hệ thống hoạt động được hiệu quả thì một trong các điều kiện tiên quyết là phải tạo dựng được một hệ thống thông tin, dữ liệu đầu vào tương thích, toàn diện và liên tục cập nhật… Phần dưới đây sẽ phát triển một ứng dụng để xử lý vấn đề này.
Hệ thống thu thập dữ liệu TTCK phải đáp ứng được yêu cầu lấy dữ liệu cơ bản của doanh nghiệp, dữ liệu giao dịch - giá cả và khối lượng giao dịch của một cổ phiếu, tin tức thị trường và chỉ số vĩ mô của nền kinh tế, trong đó dữ liệu giá và khối lượng giao dịch cổ phiếu có tính động liên tục, còn dữ liệu cơ bản của doanh nghiệp, dữ liệu vĩ mô có tính thời điểm.
Để lấy được những dữ liệu cơ bản của doanh nghiệp cũng như tin tức thị trường, hệ thống sẽ sử dụng công cụ Web crawler để lấy thông tin trên các trang mạng. Web crawler là một chương trình máy tính tự động thu thập thông tin từ trang trên Internet. Hoạt động của Web crawler giống như việc tự đi qua các trang tin tức và trích xuất thông tin một cách tự động, nhưng được thực hiện bằng cách sử dụng mã lệnh và không gặp các ràng buộc của con người.
Đi sâu vào hoạt động của Web crawler, khi khởi động, bot sẽ bắt đầu quá trình của mình bằng cách chọn một hoặc nhiều trang mạng nguồn để bắt đầu tìm kiếm, ví dự như CafeF, VietStock. Trang mạng này thường được gọi là trang gốc. Khi kết nối được với trang, bot sẽ bắt đầu tải nội dung của trang như mã JSON và HTML. Trong mã HTML có những đường dẫn đến các trang mạng khác và bot sẽ trích xuất đường dẫn đó để đi đến trang tiếp theo. Vì mục đích là lấy những bài báo kinh tế nên phải giới hạn miền của trang để giảm số lượng trang phải đi qua. Với mỗi trang báo, bot sẽ trích xuất từ HTML những tin tức còn những chỉ số cơ bản của doanh nghiệp sẽ lấy từ JSON.
Việc tìm kiếm và trích xuất thông tin này sẽ được thực hiện với vô số con bot để có thể nhanh chóng tự động hoá việc tìm kiếm thông tin và được kiểm soát bằng một con “beater” để đồng thời có thể điều khiển một số lượng lớn bot để lấy thông tin. Các dữ liệu sau khi được trích xuất sẽ được lưu vào một cơ sở dự trữ dữ liệu như SQL để xử lý và phân tích sau này.
Những con bot như vậy đơn giản, nó như người truy cập bình thường và dễ để tạo nên vì giờ có rất nhiều thư viện hỗ trợ tạo bot. Tuy nhiên, cách dùng Web crawler cũng có những hạn chế như gây ra tải cao cho hệ thống, dẫn đến có thể bị chặn bot, gặp khó khăn với trang yêu cầu đăng nhập, tốc độ cập nhật dữ liệu phụ thuộc vào tốc độ quét của hệ thống crawler,... Trong đó, hạn chế lớn nhất là độ trễ. Web crawler thực hiện các yêu cầu HTTP và nhận các phản hồi HTTP từ máy chủ, và sau đó phân tích HTML và JSON để phân tích nội dung và lấy dữ liệu cần thiết. Vì vậy, webcrawler và bot chỉ phù hợp cho việc lấy thông tin vĩ mô, thông tin cơ bản về doanh nghiệp và các thông tin thị trường không có tính cập nhật liên tục.
Đối với thông tin giá cổ phiếu biến động từng giây từng phút và có ảnh hưởng rất lớn tới quyết định, hiệu quả đầu tư cổ phiếu thì công nghệ Websocket cần được tích hợp vào hệ thống lấy dữ liệu. Do WebSocket là một công nghệ truyền thông được sử dụng để thiết lập kết nối liên tục và hai chiều giữa máy chủ và máy khách hoặc ứng dụng, nó cho phép trao đổi dữ liệu theo thời gian thực một cách hiệu quả, giúp các ứng dụng tương tác nhanh hơn và cung cấp trải nghiệm tương tác trực tiếp cho người dùng. Lý do WebSocket ít có độ trễ vì nó tạo một kết nối duy trì giữa máy khách và máy chủ, cho phép hai bên gửi và nhận dữ liệu một cách song song và hiệu quả.
Các tin nhắn của Websocket có 2 dạng: dạng chuỗi và dạng Json. Dạng Json thì sẽ dễ dàng sử dụng và phân loại thông tin vì các giá trị được đề tên. Tuy nhiên dạng này phải kèm theo một vài kí tự định dạng, nên chiếm mất một phần bộ nhớ. Còn dạng chuỗi kí tự thì chỉ toàn con số và các kí tự chia cắt những số đó, vì vậy thông tin sẽ ngắn gọn hơn, nhưng sẽ phải biết từng con số tương ứng với thông tin nào: giá cả là giá trần, giá sàn, giá đóng cửa, giá mở cửa, giá giao dịch/khớp lệnh, khối lượng giao dịch và thời gian giao dịch. Các giá trị này sau khi được trích xuất từ Websocket sẽ được gửi hết vào một Message broker.
Message broker là một phần mềm trung gian đóng vai trò là cầu nối giữa các hệ thống. Nhiệm vụ chính của Message broker là hỗ trợ việc gửi, nhận và lưu trữ các message giữa các ứng dụng một cách đáng tin cậy và hiệu quả.
Hơn nữa, Message broker có thể được áp dụng để cải tiến những con Web Crawler để chúng chạy một cách tối ưu:
- Cho các Web Crawler crawl cùng lúc, song song để được nhiều thông tin hơn.
- Nhiều ứng dụng web crawler có thể chạy trên các máy tính khác nhau và sử dụng message broker để trao đổi thông tin và phối hợp thu thập dữ liệu từ nhiều nguồn đồng thời.
- Thông qua message broker, web crawler có thể gửi yêu cầu đến các API hoặc dịch vụ, sau đó nhận và xử lý kết quả trả về.
- Sử dụng message broker, web crawler có thể đồng bộ hóa các nhiệm vụ hoặc thao tác thu thập dữ liệu giữa các thành phần của hệ thống.
Như vậy, với công nghệ Web crawler tích hợp với Websockets và Message broker, hệ thống thu thập dữ liệu nêu trên cho phép rà soát, tìm kiếm trên tất cả các kênh thông tin hiện có, rà soát, lựa chọn, liên tục cập nhật rồi gói vào tin nhắn và gửi lên phần mềm Message broker để được phân tán đến các hệ thống xử lý dữ liệu, đưa vào hệ thống chiến lược để tự động hoá quá trình mua bán phù hợp nhất với thông tin dữ liệu tức thời, với khả năng thu được nhiều lợi nhuận nhất. Đối với những người không thể xây dựng hệ thống tự động phức tạp thì có thể dùng hệ thống trên để cập nhật thông tin dữ liệu phù hợp nhất, nhanh nhất có thể, từ đó đưa ra các quyết định đầu tư./.
Tài liệu tham khảo:
1. Cổng thông tin điện tử Ủy ban Chứng khoán nhà nước: https://ssc.gov.vn
(Bài đăng ấn phẩm in Tạp chí TT&TT số 9 tháng 9/2023)