phần mở đầu, danh mục ký hiệu viết tắt, mục lục, danh mục tài liệu tham khảo, phụ lục và phần kết luận, nội dung của luận văn gồm ba chương. Tổng quan về các giao thức trao đổi dữ liệu trong lĩnh vực tài chính. Chương này giới thiệu tổng quan các giao thức trao đổi dữ liệu giữa các hệ thống tài chính. So sánh các giao thức với FIX.
Nghiên cứu chuẩn thông điệp và giao thức FIX đang được sử dụng tại Sở giao dịch chứng khoán Hà Nội. Chương này tập trung làm rõ nguyên lý của chuẩn giao thức FIX và nghiệp vụ trao đổi dữ liệu tại sàn giao dịch chứng khoán Hà Nội. Xây dựng phần mềm mô phỏng hệ thống khớp lệnh tại Sở giao dịch chứng khoán Hà Nội. Dựa trên cở sở lý thuyết về FIX và nghiệp vụ giao dịch chứng khoán tại Việt Nam và quy địch giao dịch tại HNX, luận văn thiết kế phần mềm mô phỏng hệ thống khớp lệnh tại HNX nhằm phục vụ quá trình kiểm thử phần mềm giao dịch chứng khoán.
Cài đặt thử nghiệm và đánh giá hệ thống Chương này trình bày kết quả cài đặt thử nghiệm, các kịch bản thử nghiệm và đánh giá kết quả. TIEU LUAN MOI download : skknchat@gmail.com -3- CHƢƠNG 1: TỔNG QUAN VỀ CÁC GIAO THỨC TRAO ĐỔI DỮ LIỆU TRONG LĨNH VỰC TÀI CHÍNH 1.1 Các giao thức trong đổi dữ liệu trong lĩnh vực tài chính Trước đây để tích hợp các hệ thống tin học trong lĩnh vực tài chính, các công ty phát triển phần mềm tài chính thường sử dụng một trong 2 giải pháp hoặc kết hợp các giải pháp sau: Giải pháp 1. Tự định nghĩa một giao thức phù hợp với phần mềm và nghiệp vụ hiện có. Ưu điểm: Với cách tạo ra một giao thức riêng sẽ có ưu điểm là đơn giản và tối ưu về hiệu năng, các thông điệp được tạo ra vừa đủ dữ liệu sát với nghiệp vụ mà phần mềm đáp ứng.
Nhược điểm: Nhược điểm lớn nhất của kiểu giao thức này là mang tính đặc thù, chỉ có phần mềm của nhà cung cấp đó sử dụng được, do đó chỉ có thể sử dụng để giao tiếp giữa các phần mềm do công ty đó cung cấp. Nếu muốn tích hợp với phần mềm bên thứ 3 thì phải chỉnh sửa lại giao thức. Khó khăn để tích hợp với nhiều loại phần mềm khác nhau. Áp dụng một số chuẩn mã hóa thông điệp để định nghĩa giao thức như chuẩn thông điệp ISO 8583, ISO 20022,.
Giải pháp này được đưa ra để khắc phục các nhược điểm của giải pháp 1 với mong muốn định nghĩa các thông điệp chuẩn trong lĩnh vực tài chính để đơn giản quá trình tích hợp giữa các hệ thống. Ưu điểm: Giải pháp này đã chuẩn hóa được thông điệp trao đổi thông tin giữa các hệ thống tích hợp giúp đơn giản hơn khi xây dựng giao thức tích hợp. Hiện nay hầu hết các hệ thống Core Banking lớn đều hỗ trợ giải pháp này như T24, Intellect, Korebank, Symbols,. Nhược điểm: Mặc dù đã đưa ra được chuẩn mã hóa các thông điệp nhưng chưa đưa ra được các quy tắc về giao thức, nên khi xây dựng giải pháp tích hợp các giao thức được tạo ra từ ISO thông điệp vẫn có thể khác nhau.
Do đó khi số lượng phần mềm cần tích hợp gia tăng vẫn có thể phải chỉnh sửa giao thức. Ngày nay, khi mà số lượng phần mềm tài chính gia tăng về số lượng, đa dạng về thể loại phong phú về công nghệ nếu sử dụng 1 trong 2 giải pháp trên sẽ hạn chế nhiều khi phải tích hợp với nhiều hệ thống khác nhau. Do đó cần phải có những quy định về chuẩn thông điệp và giao thức chung khi trao đổi dữ liệu tài chính. Bằng cách định nghĩa sẵn tất cả các loại thông tin có thể dùng khi trao đổi thông tin giữa các hệ thống tài chính FIX ra đời như một chuẩn thông điệp giao tiếp giữa các phần mềm tài chính TIEU LUAN MOI download : skknchat@gmail.com -4- với nhau.
Bên cạnh việc định nghĩa chuẩn thông điệp FIX còn quy định về các thức bắt tay giữa các bên, các thức truyền nhận dữ liệu, duy trì kết nối và đảm bảo tính toàn vẹn dữ liệu khi trao đổi. Có thể nói FIX là một chuẩn giao thức chung cho việc trao đổi dữ liệu giữa các hệ thống tài chính đã khắc phục được nhược điểm của các giao thức truyền thống.2 Giới thiệu về chuẩn giao thức FIX 1.1 Sơ lược về chuẩn FIX Trên thế giới hiện nay FIX đang là chuẩn thông điệp và giao thức quốc tế phổ thông cho việc giao tiếp giữa các hệ thống tài chính, đặc biệt là cho các lĩnh vực giao dịch thị trường như chứng khoán, vàng, tiền tệ, giao dịch hàng hóa,. Hầu hết, các Sàn giao dịch hiện đại trên thế giới đều sử dụng FIX cho việc trao đổi với các hệ thống liên quan phục vụ cho hoạt động công nghệ thông tin. Việc sử dụng chuẩn và giao thức quốc tế tạo ra nhiều thuận lợi cho việc triển khai, tích hợp hệ thống sau này và còn phục vụ nhu cầu mở rộng kết nối với các hệ thống tài chính khác trên thế giới.
Những thuận lợi chính khi lựa chọn FIX là chuẩn dữ liệu trao đổi với các hệ thống của thành viên như sau: Đây là chuẩn quốc tế và tương đối phổ thông, nên các qui định về cấu trúc dữ liệu, cách thức trao đổi hoàn toàn chuẩn hóa và có nhiều tài liệu hỗ trợ cho việc tích hợp hệ thống giữa Sở và CTCK. Chuẩn dữ liệu này tường minh và dễ hiểu. Có nhiều đơn vị thứ ba đã phát triển sẵn các framework cho chuẩn dữ liệu này, HNX và CTCK sẽ không mất nhiều thời gian và nguồn lực để phát triển các framework đó mà có thể tận dụng và sử dụng ngay, mặc dù sẽ phải trả thêm một số chi phí khi mua các framework này. Các hệ thống của các công ty chứng khoán hiện đại đều hỗ trợ sẵn chuẩn FIX, vì thế các CTCK khi mua các phần mềm giao dịch chứng khoán này cũng sẽ dễ dàng tích hợp với HNX.
Chuẩn FIX được nhiều Sở giao dịch trên thế giới và các đơn vị tài chính khác trên thế giới ứng dụng vì thế Sở giao dịch chứng khoán Hà Nội cũng sẽ dễ dàng tích hợp với các hệ thống đó Chuẩn FIX có rất nhiều phiên bản từ FIX 4. Hiện nay FIX 4.4 đang được sử dụng rộng rãi nhất và tại Việt Nam cũng đang sử dụng chuẩn này. Trong phạm vi luận văn này chúng ta chỉ đề cập đến phiên bản FIX 4. TIEU LUAN MOI download : skknchat@gmail.1 Cấu trúc của một FIX thông điệp Mỗi thông điệp FIX bao gồm nhiều trường và được chia thành 3 phần chính: Message Header: : Định nghĩa loại thông điệp, độ dài, người gửi, người nhận, thời gian gửi, số thứ tự,.
Message Body: Chứa nội dung thông tin thông điệp. Message Trailer: Chứa thông tin kiểm tra toàn vẹn dữ liệu trên đường truyền (chữ ký số, checksum,. Cấu trúc mỗi trường của mỗi thông điệp FIX có dạng sau: <TAG>=<VALUE><DELIMITER> Trong đó: <TAG>: Là mã số để xác định trường: có thể là số hoặc tên tường minh <VALUE>: Là giá trị của trường <DELIMITER>: Là dấu ngăn cách giữa các trường, đây là ký tự đặc biệt có mã ASCII =1 Ví dụ về một thông điệp FIX: 8=FIX. TIEU LUAN MOI download : skknchat@gmail.com -6- CHƢƠNG 2: NGHIÊN CỨU VỀ CHUẨN MESSAGE VÀ GIAO THỨC FIX ĐANG ĐƢỢC SỬ DỤNG TẠI SỞ GIAO DỊCH CHỨNG KHOÁN HÀ NỘI 2.1 Mô hình giao tiếp giữa CTCK và HNX Hiện nay các CTCK giao tiếp với sở giao dịch chứng khoán theo mô hình Máy trạm/Máy chủ, trong đó CTCK đóng vai trò làm Máy trạm và HNX đóng vai trò Máy chủ.
Gửi lệnh SERVER CLIENT (CTCK) (HNX) Kết quả Thông tin thị trường Hình 2. Mô hình giao tiếp CTCK và HNX Thông tin trao đổi giữa CTCK và HNX là các gói tin có cấu trúc gồm 2 phần: Header Data content Trong đó: Hearder: có độ dài 4 byte, lưu độ dài của dữ liệu “Data” dưới dạng binary Data content: nội dung dữ liệu gửi dưới dạng string có độ dài tùy ý. Quy ước ta sẽ gọi phần Data là thông điệp (message). Thông điệp có cấu trúc tuân theo chuẩn thông điệp FIX Quá trình trao đổi dữ liệu giữa Máy trạm và máy chủ thông qua FIX sẽ trải qua 3 giai đoạn.
Thiết lập kết nối: Trong giai đoạn này máy trạm sẽ gửi yêu cầu kết nối đến máy chủ. Máy chủ sẽ kiểm tra để xác thực thông tin gửi đến và khôi phục dữ liệu (nếu cần), nếu thỏa mãn các điều kiện kết nối thì một kênh kết nối sẽ được thiết lập giữa Máy trạm và Server. Trong trường hợp cần khôi phục dữ liệu ngay sau khi thực hiện kết nối, máy chủ sẽ gửi thông báo chấp nhận kết nối và yêu cầu máy trạm gửi dữ liệu khôi phục. Truyền dữ liệu: Sau khi máy chủ đồng ý kết nối và cho phép gửi dữ liệu lên, 2 bên có thể trao đổi dữ liệu.
Việc trao đổi dữ liệu diễn ra theo 2 chiều nhưng trong giới hạn của buffer size. Buffer size là sự chênh lệch giữa số thông điệp lệnh mà Máy trạm gửi cho HNX và số lệnh mà HNX xử lý xong. TIEU LUAN MOI download : skknchat@gmail.com -7- Kết thúc kết nối: Khi muốn kết thúc kết nối, cả 2 bên đều có quyền gửi yêu cầu kết thúc kết nối cho bên kia. Trong điều kiện bình thường thì phải đợi bên kia chấp nhận kêt thúc thì kết nối đó mới bị ngắt.
Tuy nhiên, trong các trường hợp đặc biệt (lỗi đường truyền, hoặc hết giờ, hoặc máy trạm vi phạm quy chế .) thì có thể ngắt kết nối mà không cần sự chấp thuận.1 Sơ đồ giai đoạn thiết lập kết nối CLIENT (CTCK) SERVER (HNX) Đúng FIX Gửi Start massage LogonMessage chưa? Y Gửi N RejectMessage Gửi lại Gửi User/pass LogonMessage N RejectMessage hợp lệ (Đúng user/pass) Y Gửi Sequence CTCK = HNX Last Thiết lập kết nối LogonMessage Msg Seq Num Processed ? (Thành công) N N Sequence CTCK < HNX Last N Msg Seq Num Processed ? Y Gửi Gửi lại dữ liệu ResendMessage CTCK reset lại Gửi Y sequence và tiếp SequenceReset tục gửi message Message 1 account không được logon 2 lần cùng 1 thời điểm Gửi Logon thành Kết thúc session LogoutMessage Y công chưa? (Đóng kết nối) Gửi Thiết lập kết nối LogonMessage N (Thành công) Hình 2. Sơ đồ giai đoạn thực hiện kết nối TIEU LUAN MOI download : skknchat@gmail.2 Sơ đồ giai đoạn truyền dữ liệu CLIENT (CTCK) SERVER (HNX) Gửi Đúng FIX Start Y DataMessage massage? Gửi N RejectMessage Gửi lại Gửi Gửi đúng DataMessage N RejectMessage SenderID?