Thuật toán khớp lệnh liên tục

Một phần của tài liệu Đồ án xây dựng hệ thống GTS (Trang 26 - 29)

III/ Danh mục hình vẽ

2.2.5Thuật toán khớp lệnh liên tục

* Hiện nay có 2 phương thức khớp lệnh chính mà thực tế đang sử dụng:

a. Khớp lệnh định kỳ: Là phương thức giao dịch được thực hiện trên cơ sở so khớp các lệnh mua và lệnh bán ( chứng khoán) tại một thời điểm xác định.

Phưong thức khớp lệnh định kỳ được sử dụng để xác định giá mở cửa và giá đóng cửa ( chứng khoán) trong phiên giao dịch.

b. Khớp lệnh liên tục: Là phương thức giao dịch được thực hiện trên cơ sở so khớp các lệnh mua và lệnh bán vàng ( hoặc chứng khoán) ngay khi lệnh được nhập vào hệ thống giao dịch.

Nguyên tắc khớp lệnh:

Trong mỗi phiên giao dịch, giá giao dịch của mỗi loại vàng ( hoặc chứng khoán) được hình thành sau khi khớp các lệnh được nhập vào hệ thống theo trình tự nguyên tắc về ưu tiên sau:

a. Ưu tiên về mức giá:

+ Lệnh MUA có mức giá CAO hơn sẽ được ưu tiên thực hiện trước. + Lệnh BÁN có mức giá THẤP hơn sẽ được ưu tiên thực hiện trước. b. Ưu tiên về thời gian:

Trường hợp các lệnh mua bán có cùng mức giá thì lệnh nào nhập trước vào hệ thống giao dịch được ưu tiên thực hiện trước.

c. Ưu tiên về khối lượng:

Nếu cả mức giá và thời gian đều như nhau thì lệnh nào có khối lượng lớn hơn sẽ được ưu tiên thực hiện trước.

* Giá giao dịch được xác định theo nguyên tắc:

Là mức giá thực hiện được khối lượng giao dịch lớn nhất:

ˆ Nếu có nhiều mức giá cùng thỏa mãn khối lượng giao dịch lớn nhất thì chọn mức giá gần với giá tham chiếu .

ˆ Nếu vẫn có nhiều mức giá cùng thỏa mãn 2 nguyên tắc trên thì mức giá cao nhất sẽ được chọn.

Sổ lệnh trong khớp lệnh liên tục bao giờ cũng ở trong tình trạng không thể có giao dịch được nữa. Nếu một lệnh đưa vào sẽ thực hiện so khớp lệnh với bên sổ lệnh đối ứng. Nếu có lệnh thoả mãn sẽ khớp ngay.

(Giá tham chiếu: 50,000 đ)

Bán Thang giá Mua

50,600 200 50,400 50,200 1100 1300© 50,000 500 49,800 100 49,600 200 49,400 300 Bảng 1: Bảng lệnh demo đặt

Đặt lệnh mua 1300 ©, Trước tiên sẽ khớp 1100 tại mức giá 50200 và khớp 200 tại mức giá 50000

Sổ lệnh sau khi khớp sẽ như sau:

Bảng 2: Dữ liệu lệnh Demo sau khớp Bán Thang giá Mua

50,600 200 50,400 50,200 1100 1300© 50,000 200,300 49,800 100 49,600 200 49,400 300

Thủ tục khớp lệnh được mô tả rõ nhất bằng sơ đồ thuật toán và các bước mô tả bên cạnh:

Thực hiện theo các bước:

1. Kiểm tra thông tin lệnh có phù hợp hay không.

2. So khớp với các lệnh bên sổ lệnh chờ đối ứng.

3. Sinh lệnh khớp và cập nhật lại thông tin vàng.

Đưa vào danh sách lệnh chờ tương ứng.

Kiểm tra thông tin lệnh. Các kiểm tra bao gồm: + Kiểm tra số lượng nước ngoài nắm giữ.

+ Kiểm tra thuộc tính lệnh có thoả mãn hay không. + Kiểm tra thị trường có được phép nhận lệnh này không.

. So khớp lệnh

+ Đối chiếu lệnh với danh sách lệnh chờ đối ứng. VD: nếu lệnh bán sẽ thực hiện so khớp với các lệnh danh sách lệnh mua chờ khớp. Nguyên tắc so khớp căn cứ theo nguyên tắc: Độ ưu tiên, Giá, thời gian

. Sinh thông tin lệnh khớp và cập nhật thông tin vàng

+ Sau khi so khớp lệnh được khớp. Khi đó sẽ sinh thông tin lệnh khớp và cập nhật lại thông tin vàng. + Trong TH lệnh khớp không hết. Thì phần giá trị khớp không hết sẽ được để lại trong danh sách lệnh chờ khớp (TH B4)

Đưa vào danh sách lệnh chờ khớp

+ Danh sách lệnh chờ khớp phải sắp xếp ngay theo thứ tự ưu tiên khớp lệnh. Đế thuận tiện cho việc so khớp lệnh sau này.

Thứ tự ưu tiên:

Đối với DS lệnh bán: Độ ưu tiên, giá từ thấp đến cao, thời gian

Đối với DS lệnh mua: Độ ưu tiên, giá từ cao đến thấp, thời gian

+ Lệnh đưa vào danh sách thì phải được sắp xếp ngay theo thứ tự ưu tiên khớp lệnh.

Hình 10 : Thuật toán khớp lệnh B1. Kiểm tra thông tin

lệnh B2. So khớp sổ lệnh chờ đối ứng B3. Sinh lệnh khớp và cập nhật thông tin chừng khoán Lệnh thoả mãn Lệnh thoả mãn Lệnh được khớp

B4. Đưa lệnh vào danh sách lệnh chờ khớp

tương ứng Yes

No Yes

Một phần của tài liệu Đồ án xây dựng hệ thống GTS (Trang 26 - 29)