You are on page 1of 95

Phụ lục 02: Đặc tả kỹ thuật Hệ thống giao dịch của SGDCK TPHCM

Ban hành kèm theo Quy định giao dịch trực tuyến của Sở Giao dịch Chứng khoán TP. HCM
ngày 24 tháng 11 năm 2008.

ĐẶC TẢ KỸ THUẬT
HỆ THỐNG GIAO DỊCH CỦA
SGDCK TPHCM

1
Mục Lục
I/ Thuật ngữ .................................................................................................................................... 5
II/ Giao thức Auto-T....................................................................................................................... 6
1. Định nghĩa: ......................................................................................................................... 6
2. Nguyên tắc họat động......................................................................................................... 6
3. Giao thức Auto-T................................................................................................................ 7
a. Truyền dữ liệu: ............................................................................................................. 12
b. Ngắt kết nối: ................................................................................................................. 13
c. Yêu cầu về khả năng xử lý của ứng dụng: ................................................................... 14
4. Bảng mô tả mã code ......................................................................................................... 15
Phụ lục Các biểu đồ.................................................................................................................. 16
III/ Giao thức Broadcast ............................................................................................................... 18
1. Phương thức truyền thông điệp: ....................................................................................... 18
a. Khái niệm Sequence Numbers ..................................................................................... 18
b. Khái niệm Timestamp .................................................................................................. 18
c. Định dạng của gói dữ liệu được truyền theo dạng broadcast ....................................... 18
d. Định dạng của content .................................................................................................. 18
2. Truyền lại các thông điệp bên đường UDP : ........................................................................ 19
a. Truyền tự động: ................................................................................................................ 19
b. Truyền thủ công :.............................................................................................................. 20
IV/ Mô tả các message: ................................................................................................................ 21
1. Message CTCI:................................................................................................................. 21
Message 1C: Thông tin hủy lệnh.......................................................................................... 21
Message 1D: Thông tin thay đổi lệnh................................................................................... 22
Message 1E: Thông tin quảng cáo GDTT............................................................................ 23
Message 1F: Thông tin lệnh GDTT của khách hàng cùng công ty ...................................... 24
Message 1G: Thông tin lệnh GDTT của khách hàng khác công ty...................................... 25
Message 1I: Thông tin lệnh đặt ............................................................................................ 26
Message 2B: Xác nhận lệnh đặt ........................................................................................... 27
Message 2C: Xác nhận hủy lệnh .......................................................................................... 28
Message 2D: Xác nhận thay đổi lệnh ................................................................................... 29
Message 2E: Xác nhận khớp lệnh của khách hàng khác công ty ........................................ 30
Message 2F: Thông tin lệnh GDTT cho bên mua ................................................................ 31
Message 2G: Thông tin từ chối từ HOSE............................................................................. 32
Message 2I: Xác nhận khớp lệnh của khách hàng cùng công ty .......................................... 33
Message 2L: Xác nhận khớp GDTT.................................................................................... 34
Message 3A - Admin............................................................................................................ 35
Message 3B: Thông tin trả lời lệnh GDTT của bên mua hoặc HOSE ................................. 36
Message 3C: Thông tin yêu cầu hủy lệnh ............................................................................ 37
Message 3D: Thông tin trả lời yêu cầu hủy lệnh của bên mua hoặc HOSE ........................ 38
Message RN - Retransmission Nack .................................................................................... 39
Message RP - Retransmission Reply.................................................................................... 40
Message RQ - Retransmission Request................................................................................ 41
2. Message PRS:................................................................................................................... 42
Message AA – Thông báo về giao dịch thỏa thuận.............................................................. 42
Message BR – Thông tin xác nhận kết quả giao dịch của một công ty chứng khoán .......... 43
Message BS – Thông báo thay đổi trạng thái của broker..................................................... 44
Message CO - Hủy giao dịch lô lẻ....................................................................................... 45
Message DC – Thông báo hủy một giao dịch đã khớp ........................................................ 46
Message GA – Thông báo từ HOSE .................................................................................... 47
Message IU - cập nhật chỉ số............................................................................................... 48
Message LO – thông tin của phiên giao dịch lô lẻ mới nhất ................................................ 49
Message LS – thông tin của lần giao dịch mới nhất............................................................. 50
Message NH – Tiêu đề bản tin ............................................................................................. 51
Message NS – Bản tin .......................................................................................................... 52
2
Message OL – lệnh đặt lô lẻ ................................................................................................ 53
Message OS – Thông tin xác định giá mở cửa..................................................................... 54
Message PD – Thông báo về khớp lệnh của giao dịch thỏa thuận....................................... 55
Message PO – Thông báo giá mở cửa dự kiến..................................................................... 56
Message SC – thông điệp điều khiển hệ thống..................................................................... 57
Message SI............................................................................................................................ 58
Message SR – Tổng kết thông tin từng mã chứng khoán.................................................... 59
Message SS – Thông báo thay đổi trạng thái của một mã chứng khoán.............................. 60
Message SU – Cập nhật mã chứng khoán ............................................................................ 61
Message TC – Thay đổi trạng thái của trader...................................................................... 63
Message TP – 3 giá trị tốt nhất............................................................................................. 64
Message TR – room của đầu tư nước ngoài. ........................................................................ 65
Message TS .......................................................................................................................... 66
3. Ý nghĩa của các trường trong các message: ..................................................................... 67
Accumulate Value ................................................................................................................ 67
Accumulate Volume............................................................................................................. 67
Add/Cancel Flag................................................................................................................... 67
Advances .............................................................................................................................. 67
Automatch Halt Flag ............................................................................................................ 68
Benefit .................................................................................................................................. 68
Board .................................................................................................................................... 68
Board Lot.............................................................................................................................. 68
Broker Client Volume, Broker Foreign Volume, Broker Portfolio Volume........................ 69
Cancel Confirm .................................................................................................................... 69
Cancel Shares ....................................................................................................................... 69
Ceiling Price ......................................................................................................................... 69
Client ID ............................................................................................................................... 69
Client ID Required ............................................................................................................... 70
Confirm Number .................................................................................................................. 70
Contact.................................................................................................................................. 70
Contra Firm .......................................................................................................................... 71
Current Room ....................................................................................................................... 71
Deal ID ................................................................................................................................. 71
Declines ................................................................................................................................ 71
Delist..................................................................................................................................... 71
Down Volume ...................................................................................................................... 72
Error code ............................................................................................................................. 72
Filler ..................................................................................................................................... 72
Firm ...................................................................................................................................... 73
Floor Price ............................................................................................................................ 73
Halt / Resume Flag ............................................................................................................... 73
Highest Price ........................................................................................................................ 73
Index – HOSE....................................................................................................................... 74
Index Time............................................................................................................................ 74
Last Sale Price ...................................................................................................................... 74
Lot Volume........................................................................................................................... 74
Lot Volume 1,2,3.................................................................................................................. 74
Lowest Price ......................................................................................................................... 75
Market ID ............................................................................................................................. 75
Message Type....................................................................................................................... 75
Meeting................................................................................................................................. 75
Mutual Fund Volume ........................................................................................................... 75
No Change ............................................................................................................................ 75
No Change Volume .............................................................................................................. 76
Notice ................................................................................................................................... 76
Open Price ............................................................................................................................ 76
Order Cancel Status.............................................................................................................. 76
3
Order Entry Date .................................................................................................................. 77
Order Number....................................................................................................................... 77
Original Message Text ......................................................................................................... 77
Par Value .............................................................................................................................. 77
Port/Client Flag .................................................................................................................... 77
Price...................................................................................................................................... 78
Price 1,2,3............................................................................................................................. 78
Prior Close Date ................................................................................................................... 78
Prior Close Price................................................................................................................... 78
Projected Open Price ............................................................................................................ 79
Published Volume ................................................................................................................ 79
Putthrough Halt Flag ............................................................................................................ 79
Reject Reason Code:............................................................................................................. 79
Reply Code ........................................................................................................................... 81
SDC Flag .............................................................................................................................. 81
Sector Number...................................................................................................................... 81
Security Name ...................................................................................................................... 81
Security Number, Security Number (New) .......................................................................... 82
Security Symbol ................................................................................................................... 82
Security Type........................................................................................................................ 82
Side ....................................................................................................................................... 82
Split....................................................................................................................................... 83
Suspension............................................................................................................................ 83
System Control Code............................................................................................................ 83
Time...................................................................................................................................... 84
Timestamp ............................................................................................................................ 84
Total Room........................................................................................................................... 84
Total Shares Traded.............................................................................................................. 84
Total Trades.......................................................................................................................... 84
Total Values Traded ............................................................................................................. 85
Trader ID .............................................................................................................................. 85
Trader Status......................................................................................................................... 85
Up Volume ........................................................................................................................... 85
Volume ................................................................................................................................. 86
Số lượng cổ phiếu hay chứng chỉ quỹ, trái phiếu được giao dịch trong giờ giao dịch......... 86

4. Lưu đồ các message:......................................................................................................... 87


Lưu đồ của message điều khiển (SC) ................................................................................... 87
Lưu đồ của các message từ pre-open sang open .................................................................. 87
Lưu đồ của các message với các lệnh đặt ATO/ATC .......................................................... 88
Lưu đồ xử lý lệnh đặt ........................................................................................................... 88
Lưu đồ xử lý lệnh thị trường (MP) ....................................................................................... 89
Lưu đồ message thay đổi lệnh .............................................................................................. 89
Lưu đồ message yêu cầu huỷ lệnh........................................................................................ 90
Lưu đồ khớp giao dịch thoả thuận cùng công ty .................................................................. 90
Lưu đồ huỷ một giao dịch thoả thuận cùng công ty ............................................................. 90
Lưu đồ khớp giao dịch thoả thuận khác công ty .................................................................. 90
Lưu đồ hủy lệnh thoả thuận (chỉ dành cho trường hợp khác công ty) ................................. 91
Lưu đồ quảng cáo giao dịch thoả thuận................................................................................ 92
Đơn vị của các trường giá trị số: .......................................................................................... 92
V . Bảng tóm lược các message được gửi trong từng giai đoạn................................................... 94
1. CTCI messsage:................................................................................................................ 94
2. PRS message: ................................................................................................................... 94
Lưu đồ message giữa Sở và Công ty chứng khoán ...................................................................... 95

4
I/ Thuật ngữ
1. HOSE: Sở giao dịch chứng khoán Tp.HCM.
2. Front-End: Hệ thống đầu cuối, là hệ thống trung gian giữa hệ thống giao dịch
của Sở và CTCK.
3. Back-End: Hệ thống sau cuối, chính là hệ thống giao dịch của Sở.
4. Message: Thông điệp.
5. Flow control: Là tiến trình của việc quản lý tốc độ chuyển tải dữ liệu giữa 2
điểm.
6. TCP(Transmission control protocol): Là một giao thức giao vận. Đây là một
trong những giao thức cốt lõi của bộ giao thức internet.
7. UDP(User datagram protocol): là 1 giao thức giao vận Đây là một trong những
giao thức cốt lõi của bộ giao thức internet.
8. Sliding window: Là một kỹ thuật cho phép bên gửi có thể gửi nhiều gói tin mà
không cần thiết phải nhận ACK (phản hồi ) từ bên nhận, miễn là số gói tin
không được vượt quá một giá trị nhất định, gọi là window size.
9. full-duplex: Trao đổi dữ liệu 2 chiều
10. buffer window: bộ đệm chứa các gói tin nhận được từ mạng hay các gói tin
chuẩn bị được gửi đi, đây là một thành phần trong kỹ thuật sliding window.
11. Server: là hệ thống phần mềm phục vụ cho giao dịch trực tuyến, đặt tại HOSE
12. Client: là hệ thống phần mềm đặt tại các công ty chứng khoán thành viên, nhằm
phục vụ cho giao dịch trực tuyến. Phần mềm này do các CTCK tự phát triển
hoặc mua từ các nhà cung cấp giải pháp phần mềm.
13. Sequence number: số thứ tự kế tiếp của gói dữ liệu truyền
14. Acknowledge sequence number: số sequence xác nhận giá trị mong muốn nhận
trong lần kế tiếp.
15. ClientAck: viết tắt của client acknowledge sequence number, có nghĩa là số
Acknowledge sequence phía client.
16. ServerSeq: viết tắt của server sequence number, là số sequence phía server.
17. Window size: kích thước của kỹ thuật sliding window, là số gói dữ liệu tối đa
một bên có thể gửi liên tiếp mà không cần phải chờ phản hồi từ bên nhận.
Khuyến cáo cho ứng dụng đang phát triển là 7.
18. Broker: Công ty Chứng khoán thành viên ( dùng trong mô tả các message)
19. Trader: Người môi giới
20. Packet sequence: Thứ tự của gói dữ liệu.
21. CTCI (Computer to computer interface): Là phương thức mà các thành viên của

5
Sở có thể nhập lệnh từ hệ thống máy tính của CTCK thành viên đến máy chủ
giao dịch của Sở.
22. PRS (Price report system) : Hệ thống báo giá
23. Alphabet : Ký tự chữ cái
24. Numeric String: Chuỗi chỉ bao gồm các ký tự số
25. Alphanumeric String: Chuỗi bao gồm các ký tự chữ cái và số.
II/ Giao thức Auto-T
Định nghĩa:
Giao thức Auto-T là giao thức 2 lớp ở tầng ứng dụng, được sử dụng trong việc chuyển tải
các giao dịch giữa Hệ thống giao dịch của HOSE và Hệ thống giao dịch của CTCK
thành viên. Các message được sử dụng để giao tiếp giữa 2 hệ thống.
Nguyên tắc họat động
Hệ thống giao dịch tại HOSE về logic có thể chia thành 2 thành phần: Front-End và
Back-End. Hệ thống Back-End chính là Hệ thống giao dịch của HOSE. Các giao dịch
được chuyển tải theo dạng Message giữa Hệ thống Back-End tại HOSE và Hệ thống giao
dịch của CTCK thành viên. Hệ thống Front-End sẽ đảm nhận tác vụ này nhằm xử lý các
Message theo đúng tiêu chuẩn của giao thức giao vận tầng dưới.
Giao thức ứng dụng được thiết kế theo tiêu chí sau:
- Có khả năng quản lý tốc độ chuyển tải dữ liệu giữa 2 điểm (Flow control)
- Đảm bảo độ tin cậy ngay cả khi xuất hiện sự cố
- Đáp ứng các chức năng của hệ thống Front-End
Trạng thái của một message được xác định bởi packet sequence. Thông thường, Packet
sequence không nhất thiết phải duy nhất cho cả session nhưng đối với giao thức Auto-T,
packet sequence bắt buộc phải duy nhất để dùng cho mục đích tham chiếu khác. Xem xét
trạng thái của một ứng dụng, sẽ có 3 chế độ kết nối:
- Mode A(New connection): tất cả các trạng thái đều ở tình trạng ban đầu.
- Mode C(Continued connection): Ứng dụng sẽ sử dụng trạng thái trước đó để phục
hồi dữ liệu nếu cần thiết.
- Mode B(Blindly continued connection): Khi ứng dụng mất trạng thái nhưng cố
gắng phục hồi dữ liệu chỉ với một phần thông tin trạng thái còn lưu lại được. Ví
dụ: Mode B có thể xảy ra khi máy chủ chạy ứng dụng bị sự cố.
Sẽ không có mode B nếu ứng dụng không mất trạng thái. Ví dụ : việc lưu thông tin trạng
thái lên thiết bị lưu trữ ổn định. Trong trường hợp ứng dụng được chuyển từ máy chủ này
để chạy trên một máy chủ khác, ứng dụng trong trường hợp này phải có khả năng truy
xuất thông tin lưu giữ trạng thái trên máy chủ mới. Chính vì vậy, thông tin trạng thái phải

6
được lưu trên đĩa cứng chia sẻ. Tuy nhiên, đĩa cứng chia sẻ có thể không khả thi nếu như
2 máy chủ được đặt tại các vùng địa lý khác nhau.
Cả hai bên (CTCK và SGDCK TPHCM) phải thống nhất về mode kết nối khi giai đoạn
thiết lập hoàn tất, nếu không kết nối không thể tiếp tục. Ví dụ: sẽ không khả thi nếu
Server mong muốn kết nối ở mode A trong khi Client lại muốn tạo kết nối ở mode C.
Trong Auto-T, Sở đóng vai trò như là Server và CTCK có vai trò là Client. Mối quan hệ
là 1-1. Tóm lại, giao thức ứng dụng sẽ bao gồm 3 giai đoạn chính:
- Thiết lập kết nối: trong giai đoạn này, Client sẽ yêu cầu kết nối tới Server. Trước
khi Server chấp nhận kết nối, nó sẽ thẩm định yêu cầu của client và thực hiện
phục hồi dữ liệu cho client nếu cần thiết. Dựa trên sự chấp thuận kết nối từ Server,
Client phải kiểm tra dữ liệu phục hồi từ phía Server nếu được yêu cầu và sau đó
phải gửi một xác nhận về cho Server để kết thúc quá trình thiết lập kết nối.
- Truyền dữ liệu: Một khi kết nối được thiết lập một cách hợp lệ, cả server và
client có thể gửi các gói dữ liệu cho nhau. Giai đoạn này là full-duplex, nhưng
hoat động theo sliding window, flow control. Flow control sẽ giới hạn số gói dữ
liệu mà mỗi bên có thể gửi cho nhau mà không cần nhận bất cứ phản hồi nào.
Trong giai đọan này cũng sẽ có các yêu cầu phản hồi của giao thức phụ.
- Ngắt kết nối: Khi cả 2 bên chuẩn bị ngưng kết nối, client nên tuân theo giao thức
ứng dụng trước khi đóng kết nối.
Ngoài những vấn đề về độ tin cậy đã nêu trên, flow control phải có khả năng quản lý
như:
- Số gói tin có thể mất trong quá trình bị sự cố sẽ không được quá kích thước của
buffer window. Thời điểm phục hồi có thể được điều khiển ở mức ứng dụng.
- Nếu bên nhận không thể nhận bất kỳ gói tin nào vì bất kỳ lý do gì thì giai đoạn
truyền dữ liệu nên ngừng nếu không bên nhận có thể bị quá tải dẫn đến sụp đổ hệ
thống.
Giao thức Auto-T
Định dạng Auto-T Message:
Len Seq AckSeq Opcode Link ID Content ETX
2 bytes 4 bytes 4 bytes 2 bytes 2 bytes N bytes 1 byte
Bảng 1 : Định dạng Auto-T message

7
Mô tả chi tiết:
Field Name Field Length Field Type Field Description
Length 2 bytes ASCII Độ dài của cả gói
( mod96+32) tin không bao gồm
trường này
sequence 4 bytes ASCII (mod96+32) Seq kế tiếp của bên
gửi.
ack sequence 4 bytes ASCII (mod96+32) Seq mong muốn kế
tiếp của bên gửi.
Opcode 2 bytes Alphabet Loại gói tin, giúp
ứng dụng có khả
năng xử lý tương
ứng, đồng thời định
rõ được định dạng
và ý nghĩa của
những trường còn
lại.
Link-ID 2 bytes ASCII (mod96+32) Id của đường kết
nối giúp server xác
định được dữ liệu
đến từ client nào
content N bytes Phần nội dung, phụ
thuộc vào loại gói
tin được chỉ ra
trong Opcode.
ETX 1 byte constant Dấu hiệu kết thúc
(ASCII code 03)
Bảng 2 : Mô tả chi tiết các trường

8
Định dạng phần nội dung của gói tin, phụ thuộc vào opcode:
Nội dung
Opcode hay là kiểu gói Tên trường Độ dài của trường
tin (2 chars)
HL (HELLO) Mode 1 byte ( alphabet )
A = new connection
B = blindly continued
connection
C = continued connection
password N bytes
EOS (End Of String, 1 byte
ASCII code 00)
number of markets 1 byte (mod96+32)
market ID-1 1 byte (alphabet)
A = ASSET
(subjected to change)
firm ID-1 3 bytes (alphabet)
... ...
market ID-n 1 byte (alphabet)
firm ID-n 3 bytes (alphabet)
HR (HELLO_REPLY) mode 1 byte (alphabet)
CF (CONFIRM) - -
DT(DATA), market-ID 1 byte (alphabet)
LO(LEFTOVER),
LL(LEFTOVER_LAST)
của DT
message-count 1 byte (mod96+32)
data N bytes (Nếu có hơn một
message, mỗi message sẽ
được ngăn cách bởi ký tự
US)
LO(LEFTOVER) market-ID 1 byte
LL(LEFTOVER_LAST)
Của RP
RP Packet “RP” = 2 bytes
Link id = 2 bytes
Market-ID = 1 byte
Broadcast message = N bytes
RR(RETRAN_REQ) market-ID 1 byte
broadcast request message N bytes
RP(RETRAN_REPLY) market-ID 1 byte

9
broadcast message N bytes
AK(ACK) - -
NK(NACK) error code 2 bytes ( mod96+32 )
error string N bytes
EOS (ASCII code 00 ) 1 byte
FN(FINISH) - -
AF (ACKFIN) - -
EC (ECHO) - -
ER (ECHO_REPLY) - -
Bảng 3: Mô tả chi tiết nội dung của opcode
Thiết lập kết nối:
Giai đoạn này bao gồm cả quá trình chứng thực người dùng và quá trình phục hồi dữ
liệu nếu có message bị mất trong lần truyền trước.
™ Giao thức truyền:
¾ Client gửi gói HELLO kèm theo sequence number, acknowledge sequence
number và cả mật khẩu để server kiểm tra, chứng thực người dùng. Nếu có
lỗi, message NACK kèm theo mã lỗi và mô tả lỗi sẽ được gửi về cho client.
¾ Server sẽ kiểm tra để biết client có cần khôi phục dữ liệu nào không.
ƒ Nếu CliAck +WindowSize >= ServSeq > CliAck: client bị mất một số
message và cần được truyền lại các message bị mất
ƒ Nếu ServSeq == CliAck : Client đã nhận đủ các message.
ƒ Nếu ServSeq > CliAck+WindowSize: gần như không thể xảy ra. Nếu
có giao thức nên ngừng để phối hợp xử lý.
ƒ Nếu ServSeq < CliAck: có thể là do server bị sự cố hoặc server và
client kết nối ở 2 mode khác nhau. Nếu là trường hợp thứ hai, chỉ cần
tắt client và khởi động lại ở mode giống với server.
¾ Sau khi đã kiểm tra và quá trình khôi phục dữ liệu (nếu có) hoàn tất, server
sẽ gửi message HELLO_REPLY, client cũng phải thực hiện các bước kiểm
tra tương tự server
ƒ Nếu ServAck+WindowSize >= CliSeq > ServAck: server bị mất
message và cần được truyền lại.
ƒ Nếu CliSeq == ServAck: server đã nhận đủ message từ client gửi.
ƒ Nếu CliSeq > ServAck+WindowSize: gần như không thể xảy ra. Nếu có
phải xem xét server ack và client sequence để điều chỉnh cho hợp lý.
ƒ Nếu CliSeq < ServAck: có thể là do client bị down hoặc server và client

10
kết nối ở 2 mode khác nhau. Nếu là trường hợp thứ hai, chỉ cần tắt
client và khởi động lại ở mode giống với server.
¾ Sau khi đã kiểm tra và quá trình khôi phục dữ liệu (nếu có) hoàn tất, client
gửi message CONFIRM để hoàn tất giai đoạn 1 giai đoạn kết nối. Bảng
dưới thể hiện tất cả các khả năng kết nối và thao tác cần thực hiện tương
ứng.
Exchange Broker Action(s)
A A Không cần quá trình << HELLO (1,1)
phục hồi dữ liệu HELLO_REPLY (1,1) >>
<< CONFIRM(1,1)
A B Sai mode kết nối << HELLO
(any,any)
NACK (any,any)>>
A C Sai mode kết nối << HELLO
(any,any)
NACK (any,any)>>
B A Sai mode kết nối << HELLO
(any,any)
NACK (any,any)>>
B B Không cần quá trình <<
phục hồi dữ liệu. HELLO(seq1,ackSeq1)
HELLO_REPLY (seq1,ackSeq1) >>

<<CONFIRM(seq1,ackSeq1)
B C Không cần quá trình <<
phục hồi dữ liệu. HELLO(seq1,ackSeq1)
HELLO_REPLY (ackSeq1,seq1) >>

<<CONFIRM(seq1,ackSeq1)
C A Sai mode kết nối << HELLO
(any,any)
NACK (any,any)>>
C B Không cần quá trình << HELLO(1,1)
phục hồi dữ liệu. HELLO_REPLY (seq1,ackSeq1) >>

<<CONFIRM(ackSeq1,seq1)

11
C C Có thể có quá trình phục << HELLO(any,any)
hồi dữ liệu LEFTOVER/LEFTOVER_LAST
>>
HELLO_REPLY(any,any)>>
<<LEFTOVER/LEFTOVER_LAST
<<CONFIRM(any,any)

* Ghi chú: Trong gói HELLO, client có thể gửi danh sách các thị trường muốn
giao dịch. Tuy nhiên, HOSE chỉ có 1 thị trường duy nhất.
a. Truyền dữ liệu:
• Quá trình này bao gồm cả truyền message và dịch vụ phản hồi yêu cầu:
♦ Giao thức truyền message sẽ phải dựa vào cơ chế sliding window để truyền.
♦ Dịch vụ phản hồi yêu cầu thì có thể lấy ví dụ trong trường hợp server gửi
ACK, NACK khi nhận được message từ client.
♦ Ngoài ra, client còn có thể có các giao thức phụ khác như gửi yêu cầu đến
server, yêu cầu truyền lại thông tin bên broadcast hoặc là gửi ECHO message
khi không có dữ liệu cần truyền. Bất cứ thông điệp nào gửi đến server có lỗi,
server sẽ gửi NACK về để thông báo.
• Kỹ thuật sliding window: chỉ dùng để điều khiển dòng dữ liệu truyền giữa server
và client. Nó không có nhiệm vụ sắp xếp thứ tự các gói tin, phát hiện việc mất hay
trùng lắp gói tin. Đó là việc của giao thức truyền dữ liệu. Kỹ thuật này cho phép
mỗi bên có thể gửi nhiều gói tin mà không cần thiết phải nhận ACK từ phía nhận,
miễn là số gói tin nằm trong khoảng window size. Mỗi gói dữ liệu được gửi kèm
theo số ack sequence, chứng nhận với bên nhận rằng bên gửi đã nhận được dữ liệu
đến giá trị sequence = ack sequence -1. Có nghĩa là khi gửi thông điệp DATA, bên
gửi đã bao gồm thông tin ACK trong đó. Và điều kiện sau phải luôn được thỏa
mãn:
theirAckSeq < ourNextSeq <= theirAckSeq+WindowSize
• Yêu cầu truyền lại dữ liệu broadcast: client nếu muốn có thể yêu cầu server truyền
lại dữ liệu bên broadcast. Server sẽ gửi lại ACK nếu yêu cầu hợp lệ, ngược lại, gửi
CTCI-RN. Message chứa dữ liệu client yêu cầu sẽ được gửi sau khi gửi ACK.
Quy trình gửi yêu cầu của client và trả lời của server như sau:

12
RETR AN_R EQ Mkt retran request message
ID
RETRAN_REQ
Exchange Broker

ACK/CTCI-RN

When a broker wants to request broadcast message retransmission.

RETR AN_R EPLY Mkt retran broadcast message


ID

When an exchange wants to send broadcast retransmission data.

Hình 1 : Quy trình yêu cầu gửi lại dữ liệu


• Lệnh ECHO: bên nào cũng có thể gửi ECHO message để kiểm tra tính sẵn sàng
của bên nhận. Khi đó, bên nhận phải gửi ECHO REPLY để xác nhận tính sẵn
sàng.
b. Ngắt kết nối:
™ Giao thức truyền:
Bất kỳ bên nào cũng đều có quyền gửi FN để báo hiệu ý muốn ngắt kết nối.
* Đối với bên gửi yêu cầu ngắt kết nối (gửi FN):
- Khi bên gửi nhận được ACKFIN trả lời, nó kiểm tra điều kiện theirAckSeq <
ourNextSeq <= (theirAckSeq+window_size). Nếu không thoả sẽ gửi NACK và khi
đó quá trình ngắt kết nối không được hoàn tất. Và quá trình khôi phục dữ liệu sẽ phải
thực hiện trong lần thiết lập kết nối sau đó.
- Bên nhận FN có thể gửi DT nếu vẫn muốn tiếp tục. Bên gửi FN sau khi nhận DT,
nếu muốn ngắt kết nối, phải gửi FN lại. Cũng có thể cả hai bên đều gửi FN cùng lúc
để báo hiệu việc muốn ngắt kết nối.
Vì ACKFIN cũng bao gồm cả DATA ACK, nên input và output window phải được
cập nhật. Sau đó, nó cũng gửi ngược lại ACKFIN để kết thúc quá trình ngắt kết nối.
* Đối với bên nhận được yêu cầu ngắt kết nối (nhận FN):
- Khi nhận được FN, nó sẽ kiểm tra điều kiện theirAckSeq < ourNextSeq <=
(theirAckSeq+window_size). Nếu không thoả sẽ gửi NACK về. Khi đó quá trình ngắt
kết nối xem như chưa hoàn tất.
Vì FN cũng bao gồm cả DATA ACK, nên bên nhận FN sẽ cập nhật giá trị output
window. Sau đó, khi gửi ACKFIN, nó sẽ cập nhât input window và chờ đến khi nhận
được ACKFIN báo hiệu quá trình ngắt kết nối đã hoàn tất.
13
Lược đồ mô tả các trạng thái của giao thức AutoT:

START snd: NACK STOP Protocol State Diagram


rcv: HELLO rcv: ACK
1 snd: LEFTOVER 3
2
snd: LEFTOVER
snd: HELLO_REPLY snd: LEFTOVER_LAST
snd: LEFTOVER_LAST
snd: HELLO_REPLY rcv: ACK
6 4
5
snd: ACK
rcv: LEFTOVER
rcv: CONFIRM 7 8
rcv: LEFTOVER_LAST rcv: LEFTOVER
rcv/snd: DATA, rcv: LEFTOVER_LAST
ACK, NACK rcv: CONFIRM snd: ACK
11* 10 9

snd: DATA, ACK


rcv:
FINISH
snd: ACKFIN
STOP
snd: FINISH 14 snd: NACK
rcv: FINISH STOP
rcv: ACKFIN

rcv: DATA, ACK 15 STOP


rcv: NACK
STOP
Hình 2 : Lược đồ các trạng thái của giao thức Auto-t

12
rcv: CONFIRM server
snd: COMAND command
ECHO
rcv/snd: DATA,
ACK, NACK 11 rcv: ACK, NACK,
data ECHO_REPLY
transfer
rcv: COMMAND,
ECHO

snd: ACK, NACK, 13


ECHO_REPLY client
snd: FINISH
command
rcv: FINISH

State Diagram during Data Transfer State

Hình 3 : Lượt đồ trong trạng thái truyền dữ liệu


Cho dù đang ở bất kỳ trạng thái nào, nếu server nhận được yêu cầu thiết lập kết nối mới
của client, nó sẽ huỷ kết nối hiện tại và quay về trạng thái đầu tiên. Giai đoạn kết nối sẽ
được thực hiện ở mode C.
c. Yêu cầu về khả năng xử lý của ứng dụng:
• Ứng dụng cần phải ngừng trong các trường hợp sau:

14
♦ Nó nhận được một gói tin không hợp lệ, ví dụ : sai định dạng. Nhưng
cũng có thể cho ứng dụng bỏ qua gói tin đó để nhận gói tin tiếp theo.
♦ Sau một khoảng thời gian xác định, nó không nhận được bất kỳ tín hiệu
nào từ phía đối ứng. Khoảng thời gian này là tuỳ ý, nhưng không được
nhỏ hơn một vòng truyền dữ liệu của gói tin. HOSE khuyến cáo thời
gian tối thiểu là 15 giây.
♦ Khi giao thức truyền nhận bị đứt vì một lý do nào đó, ví dụ : bị mất
trạng thái.
♦ Khi gói tin gửi đến có số sequence không liền kề với gói tin trước.
• Kích thước của input window và output window phải giống nhau. Kích
thước này ảnh hưởng nhiều đến khả năng xử lý, độ trễ và thời gian khôi
phục dữ liệu của ứng dụng. HOSE khuyến cáo window side 17 là 7.
• Có thể chọn cho mỗi gói DATA chứa một hay nhiều message, nhưng phải
có sự thống nhất giữa HoSE và CTCK.
• Để việc truyền dữ liệu trên mạng được đảm bảo an toàn, không bị mất mát
dữ liệu, gói AutoT nên có kích thước lớn nhất là 536 bytes (đã bao gồm
TCP packet header và AutoT packet header).
Bảng mô tả mã code
Mã lỗi Mô tả lỗi
“sequence/ack-sequence không chính
2002
xác"
2003 "Yêu cầu thực hiện không thành công"
2004 “Thị trường đã đóng cửa”
2005 “Không đủ quyền”
2006 “Gói dữ liệu không chính xác”
2007 “Không phù hợp mode kết nối”

Mã thị trường Tên thị trường


'A' "HOSE"

15
Mode kết nối Mô tả
'A' "new connection"
'B' "blindly continued connection"
'C' "continued connection"
Bảng 4 : Bảng mô tả mã code
Phụ lục Các biểu đồ

Transport Connection

Server HELLO Client


(Exchange) (Broker)
LEFTOVER
ACK
...
LEFTOVER_LAST
ACK

HELLO_REPLY
LEFTOVER
ACK
...
LEFTOVER_LAST
ACK

CONFIRM

DATA/ACK/NACK

Connection Setup

Hình 4 : Quá trình thiết lập kết nối

DATA

If an exchange DATA( Piggybacked Ack)


has any data to
send or
(Explicit) ACK
If Input Window
is full or
If a received data NACK
is invalid or
If an exchange FINISH
wants to terminate
the session

Server Client
(Exchange) (Broker)

Data Transfer

Hình 5 : Quá trình truyền dữ liệu

16
Server or FINISH Client
Client or Server
ACKFIN

ACKFIN

or
NACK

Transport Disconnect

Connection Termination

Hình 6 : Quá trình kết thúc kết nối

17
III/ Giao thức Broadcast
Giới thiệu: giao thức này dùng để truyền các thông tin chung về thị trường đến tất
cả các thành viên tham gia giao dịch.
1. Phương thức truyền thông điệp:
- Các message broadcast được truyền dưới hình thức các gói broadcast. Một gói
broadcast có thể chứa một hay nhiều message broadcast và gói này được truyền
bằng giao thức UDP.
a. Khái niệm Sequence Numbers
- Một gói broadcast được xác định bằng một số sequence kèm theo. HOSE
gửi các gói broadcast này kèm theo chuỗi các số sequence tương ứng, bắt đầu
từ 1. Bên nhận sẽ dựa vào số sequence này để phát hiện message bị trùng lặp
hay bị mất và dựa vào đó để gửi yêu cầu truyền lại broadcast đến HOSE.
- Trường hợp HOSE phải thiết lập lại số sequence (trở lại bằng 1), bên nhận
cũng phải có chức năng hỗ trợ để thiết lập lại số sequence tương ứng. Trong
trường hợp không thể phục hồi được các gói dữ liệu bị mất, chương trình nhận
phải có khả năng bỏ qua các gói mất này, để tiếp tục nhận các gói tiếp theo của
phiên giao dịch hiện tại.
b. Khái niệm Timestamp
- Khi không có thông điệp nào được gửi, HOSE sẽ gửi timestamp (TS)
message theo một thời gian định kỳ nhất định. Hiện tại thời gian là sau mỗi 30
giây không có message được gửi.
c. Định dạng của gói dữ liệu được truyền theo dạng broadcast
- Một gói dữ liệu broadcast có định dạng chung như sau:

Tên field Kích cỡ Định dạng Ghi chú


(bytes)
SeqNum 3 Mod96 Số sequence của gói dữ liệu
MarketID 1 Alpha String ‘A’ đối với HOSE
MsgCount 1 Mod96 Số message trong content
PackedContent n Xem mục d

Bảng 5 : Định dạng của message broadcast


d. Định dạng của content
- Trong content của gói broadcast có thể chứa nhiều message, mỗi message
cách nhau bởi ký tự US (ASCII 31 or 0x1F)

18
Tên field Kích Định dạng Ghi chú
cỡ
(bytes)
BCMsg1 n1 Broadcast Message
UnitSeparator 1 Control ASCII US character, ASCII 31 (0x1F)
BCMsg2 n2 Broadcast Message
UnitSeparator 1 Control ASCII US character, ASCII 31 (0x1F)
BCMsg2 n2 Broadcast Message
UnitSeparator 1 Control ASCII US character, ASCII 31 (0x1F)
BCMsg3 n3 Broadcast Message
… … … …
UnitSeparator 1 Control ASCII US character, ASCII 31 (0x1F)
BCMsgn nn Broadcast Message

Bảng 6 : Định dạng nội dung của message broadcast


2. Truyền lại các thông điệp bên đường UDP :
Khi sử dụng UDP gói dữ liệu có thể bị trùng lắp hoặc bị mất. Nếu số sequence
nhận được nhỏ hơn số sequence mà chương trình nhận mong muốn thì có nghĩa là nó bị
trùng lắp và chương trình phải bỏ những packets này. Nếu số sequence bị cách biệt, có
thể 1 số packet bị mất khi đó chương trình nên thiết lập quá trình retransmission.
a. Truyền tự động:
Chương trình có thể yêu cầu quá trình truyền lại thông qua giao thức Auto-t với
message CTCI-RQ.
Nếu yêu cầu không hợp lệ, HOSE sẽ gửi lại message CTCI-RN
Một số tiêu chuẩn của quá trình truyền lại :
- Số sequence tối đa của mỗi yêu cầu là 600 sequences.
- Số sequence bắt đầu của yêu cầu retransmission hiện tại phải lớn hơn số
sequence kết thúc của quá trình retransmission thành công lần trước.
Nếu yêu cầu hợp lệ, HOSE sẽ gửi lại Broadcast message chứa trong những
message CTCI-RP. Ký tự UnitSeparator (US) trong Broadcast packet sẽ thay
thành ký tự BELL. Nếu các message bị mất là các message Timestamp(CTCI-TS),
thì hệ thống sẽ không gửi lại. Message Timestamp trong trường hợp này được sử
dụng để thông báo kết thúc quá trình retransmission. Lưu ý : trường Timestamp
trong message TS có giá trị là mod96( số sequence kết thúc của quá trình
Retransmission) chứ không phải là Mod96(HHMMSS). Những message màu xám
trong hình 7 là tùy chọn.

19
Client Server
Broker TP
Broadcast packet lost detected

CTCI-RQ
Valid request
CTCI-RP
:
:

CTCI-RP

CTCI-RP(TS)

Hình 7 : Lượt đồ quá trình gửi lại thành công

Client Server TP
Broker
Broadcast packet lost detected

CTCI-RQ
Invalid request

CTCI-RN

Hình 8: Lượt đồ quá trinh gửi lại bị từ chối

b. Truyền thủ công :


Công ty Chứng khoán thành viên cũng có thể yêu cầu gửi lại các gói UDP đã bị
mất bằng cách gọi điện thoại cho HOSE và nói rõ packet sequence cần truyền lại.

20
IV/ Mô tả các message:
Message CTCI:

Message 1C: Thông tin hủy lệnh

Field Size Type


1. Message Type 2 "1C"
2. Firm 3 Numeric String
3. Order Number 8 Numeric String
4. Order Entry Date 4 Numeric String
Total 17

Message này dùng để hủy lệnh trong Hệ thống giao dịch HOSE, được xác định bởi số
hiệu lệnh (Order number) và ngày nhập lệnh (Order Entry Date). Message xác nhận lệnh
hủy (2C) sẽ được trả về cho công ty bởi Hệ thống giao dịch HOSE nếu lệnh đó được hủy.
Ngược lại Message từ chối (2G) sẽ được gửi lại cho công ty đó với mã lý do giải thích tại
sao việc hủy lệnh đó không được chấp nhận.

21
Message 1D: Thông tin thay đổi lệnh

Field Size Type


1. Message Type 2 "1D"
2. Firm 3 Numeric String
3. Order Number 8 Numeric String
4. Order Entry Date 4 Numeric String
5. Client ID 10 Alphanumeric String
6. Filler 17
Total 44

Message này dùng để thay đổi những giá trị có thể chỉnh sửa của lệnh đã được nhập vào
trước đó trong hệ thống giao dịch trên Bảng giao dịch khớp lệnh. Nếu 1 trường được điền
trong message này nó sẽ thay thế một giá trị đã tồn tại của trường đó trong lệnh đã đặt.
Message xác nhận thay đổi lệnh (2D) sẽ được gửi nếu nếu lệnh thay đổi này hợp lệ.
Ngược lại Message từ chối (2G) sẽ được gửi lại cho công ty đó với mã lý do giải thích tại
sao lệnh đó không được chấp nhận.

22
Message 1E: Thông tin quảng cáo GDTT

Field Size Type


1. Message Type 2 "1E"
2. Firm 3 Numeric String
3. Trader ID 4 Alphanumeric String
4. Security Symbol 8 Alphanumeric String
5. Side 1 Alpha String
6. Volume 8 Numeric String
7. Price 12 Numeric String
8. Board 1 Alpha String
9. Time 6 Numeric String
10. Add/Cancel Flag 1 Alpha String
11. Contact 20 Alphanumeric String
Total 66

Message này dùng để thêm hoặc hủy một quảng cáo của mã chứng khoán. Quảng cáo
giao dịch thoả thuận không phải là lệnh đặt mà là thông tin được đưa lên biểu hiện ý
muốn giao dịch một loại chứng khoán nào đó với giá và khối lượng thoả thuận. Broker
phản hồi quảng cáo GDTT này bằng cách liên lạc với broker đăng quảng cáo và thực
hiện thỏa thuận giao dịch. Nếu broker đó chấp nhận thỏa thuận thì lệnh giao dịch thỏa
thuận khác thành viên (1G) sẽ được nhập vào bởi broker bán. Trường thời gian (Time)
được định bởi Hệ thống của broker và gửi cho Hệ thống giao dịch của HOSE khi thêm
hoặc hủy một quảng cáo GDTT

23
Message 1F: Thông tin lệnh GDTT của khách hàng cùng công ty

Field Size Type


1. Message Type 2 "1F"
2. Firm 3 Numeric String
3. Trader ID 4 Alphanumeric String
4. Client ID (Buyer) 10 Alphanumeric string
5. Client ID (Seller) 10 Alphanumeric String
6. Security Symbol 8 Alphanumeric string
7. Price 12 Numeric String
8. Board 1 Alpha String
9. Deal ID 5 Numeric String
10. Filler 8
11. Broker Portfolio Volume 8 Numeric String
(Buyer)
12. Broker Client Volume (Buyer) 8 Numeric String
13. Mutual Fund Volume (Buyer) 8 Numeric String
14. Broker Foreign Volume 8 Numeric String
(Buyer)
15. Filler 32
16. Broker Portfolio Volume 8 Numeric String
(Seller)
17. Broker Client Volume (Seller) 8 Numeric String
18. Mutual Fund Volume (Seller) 8 Numeric String
19. Broker Foreign Volume 8 Numeric String
(Seller)
20. Filler 32
Total 191

Message này được dùng khi công ty chứng khoán thực hiện một giao dịch thỏa thuận
cùng thành viên và được chấp nhận bởi HOSE. Lệnh GDTT của khách hàng cùng công
ty (1F) chỉ có khi công ty chứng khoán vừa là người mua và người bán

24
Message 1G: Thông tin lệnh GDTT của khách hàng khác công ty

Field Size Type


1. Message Type 2 "1G"
2. Firm (Seller) 3 Numeric String
3. Trader ID (Seller) 4 Alphanumeric String
4. Client ID (Seller) 10 Alphanumeric String
5. Contra Firm (Buyer) 3 Numeric String
6. Trader ID (Buyer) 4 Alphanumeric String
7. Security Symbol 8 Alphanumeric String
8 Price 12 Numeric String
9 Board 1 Alpha string
10. Deal ID 5 Numeric String
11. Filler 4
12. Broker Portfolio Volume 8 Numeric String
(Seller)
13. Broker Client Volume 8 Numeric String
(Seller)
14. Mutual Fund Volume (Seller) 8 Numeric String
15. Broker Foreign Volume 8 Numeric String
(Seller)
16. Filler 32
Total 120

Message này được sử dụng khi 2 công ty chứng khoán làm giao dịch thỏa thuận và được
chấp nhận bởi HOSE. Sau khi thỏa thuận, người bán sẽ gửi lệnh GDTT của khách hàng
khác công ty tới HOSE. Khi thỏa thuận đã được thương lượng thì người bán phải có đuợc
trader ID của người mua và nhập thông tin đó vào. Hệ thống HOSE sẽ ấn định confirm
number để giao dịch và gửi Message xác nhận giao dịch thỏa thuận (2F) cho người mua.
Người mua phải gửi lại message trả lời giao dịch thỏa thuận (3B) cho Hệ thống giao dịch
của HOSE. Sau khi người mua chấp nhận và HOSE chấp nhận thì một Message xác nhận
khớp thỏa thuận (2L) sẽ được gửi về 2 phía. Nếu người mua hoặc HOSE không chấp
nhận thỏa thuận thì một message trả lời giao dịch thỏa thuận (3B) sẽ được gửi cho 2 phía.

25
Message 1I: Thông tin lệnh đặt

Field Size Type


1. Message Type 2 "1I"
2. Firm 3 Numeric String
3. Trader ID 4 Alphanumeric String
4. Order number 8 Numeric String
5. Client ID 10 Alphanumeric String
6. Security Symbol 8 Alphanumeric String
7. Side 1 Alpha string
8. Volume 8 Numeric String
9. Published volume 8 Numeric String
10. Price 6 Alphanumeric String
11. Board 1 Alpha string
12. Filler 5
13. Port/Client Flag 1 Alpha string
14. Filler 5
Total 70

Message này được gửi đến HOSE bởi công ty chứng khoán để nhập một lệnh.

Lưu ý : Published volume phải bằng với Volume

26
Message 2B: Xác nhận lệnh đặt

Field Size Type


1. Message Type 2 "2B"
2. Firm 3 Numeric String
3. Order Number 8 Numeric String
4. Order Entry Date 4 Numeric String
Total 17

Message này được gửi bởi HOSE đến broker để xác nhận lệnh đó đã được nhận. Order
number được gửi ngược lại để xác định lệnh đã được nhận.

27
Message 2C: Xác nhận hủy lệnh

Field Size Type


1. Message Type 2 "2C"
2. Firm 3 Numeric String
3. Cancel Shares 8 Numeric String
4. Order Number 8 Numeric String
5. Order Entry Date 4 Numeric String
6. Order Cancel Status 1 Alpha String
Total 26

Lệnh hủy được xác định bởi Order number. Message này được gửi khi :
- CTCK yêu cầu hủy lệnh và được HOSE chấp thuận.
- Lệnh MP không được khớp.
- Lệnh MP của nhà đầu tư nước ngoài (Bên mua), không được khớp hết.
- Lệnh ATO, ATC không được khớp.

28
Message 2D: Xác nhận thay đổi lệnh

Field Size Type


1. Message Type 2 "2D"
2. Firm 3 Numeric String
3. Order Number 8 Numeric String
4. Order Entry Date 4 Numeric String
5. Client ID 10 Alphanumeric String
6. Port/Client Flag 1 Alpha string
7. Published Volume 8 Numeric String
8. Price 6 Numeric String
9. Filler 8
Total 50

Đối với mỗi lệnh thay đổi được chấp nhận bởi HOSE, message xác nhận thay đổi lệnh sẽ
đuợc gửi đến công ty yêu cầu thay đổi lệnh. Order Number và Order Entry Date sẽ xác
định lệnh được thay đổi. Những trường khác trong message này sẽ chứa giá trị hiện tại
cho lệnh đó bao gồm cả những thông tin lệnh mới được cập nhật. Message này cũng
được dùng để thông báo đến broker khi một lệnh thị trường chỉ mới khớp một phần, phần
chưa khớp sẽ đổi lại thành lệnh giới hạn. Khi đó, Published Volume để trống, price
chuyển thành giá giới hạn.

29
Message 2E: Xác nhận khớp lệnh của khách hàng khác công ty

Field Size Type


1. Message Type 2 "2E"
2. Firm 3 Numeric String
3. Side 1 Alpha string
4. Order Number 8 Numeric String
5. Order Entry Date 4 Numeric String
6. Filler 2
7. Volume 8 Numeric String
8. Price 6 Numeric String
9. Confirm Number 6 Numeric String
Total 40

Lệnh khớp của khách hàng khác công ty sẽ được gửi cho mỗi bên khi lệnh từ 2 broker
khác nhau khớp.

30
Message 2F: Thông tin lệnh GDTT cho bên mua

Field Size Type


1. Message Type 2 "2F"
2. Firm (Buy) 3 Numeric String
3. Trader ID (Buy) 4 Alphanumeric String
4. Side (B) 1 Alpha string
5. Contra Firm (Sell) 3 Numeric String
6. Trader ID (contra side-Sell) 4 Alphanumeric String
7. Security Symbol 8 Alphanumeric String
8. Volume 8 Numeric String
9. Price 12 Numeric String
10. Board 1 Alpha string
11. Confirm Number 6 Numeric String
Total 52

Message này sẽ được gửi cho broker đối ứng khi mà một giao dịch thỏa thuận 2 bên (1G-
Two Firm Put-through Deal Message) được nhận bởi HOSE. Message này được gửi cho
bên mua. Chi tiết của giao dịch có thể đã được kiểm tra. Người mua nên gửi Put-Through
Deal Reply để chấp nhận hoặc không chấp nhận giao dịch này.

31
Message 2G: Thông tin từ chối từ HOSE

Field Size Type


1. Message Type 2 "2G"
2. Firm 3 Numeric String
3. Reject Reason Code 2 Numeric String More codes
4. Original Message Text 233 Depend size of
message type
Total 240

Lệnh từ chối sẽ được trả về cho công ty khi HOSE nhận một message không hợp lệ.
Trường Reject Reason code giải thích vì sao HOSE không thể thực hiện yêu cầu. Trong
trường hợp message nguyên thủy vượt quá 233 byte, chỉ 233 byte đầu được đính kèm.

32
Message 2I: Xác nhận khớp lệnh của khách hàng cùng công ty

Field Size Type


1. Message Type 2 "2I"
2. Firm 3 Numeric String
3. Order Number (Buy) 8 Numeric String
4. Order Entry Date (Buy) 4 Numeric String
5. Order Number (Sell) 8 Numeric String
6. Order Entry Date (Sell) 4 Numeric String
7. Volume 8 Numeric String
8. Price 6 Numeric String
9. Confirm Number 6 Numeric String
Total 49

Lệnh khớp của khách hàng cùng công ty sẽ được gửi cho công ty chứng khoán khi 2 lệnh
khớp được tạo bởi cùng 1 công ty chứng khoán

33
Message 2L: Xác nhận khớp GDTT

Field Size Type


1. Message Type 2 "2L"
2. Firm 3 Numeric String
3. Side 1 Alpha string
4. Deal ID 5 Numeric String
5. Contra Firm 3 Numeric String
6. Volume 8 Numeric String
7. Price 12 Numeric String
8. Confirm Number 6 Numeric String
Total 40

Message này được gửi để xác nhận cùng công ty hoặc khác công ty giao dịch thỏa thuận
Nếu là bên mua Side=’B’, nếu là bên bán Side=’S’. Nếu mà giao dịch thỏa thuận cùng
công ty Side=’X’

34
Message 3A - Admin

Field Size Type


1. Message Type 2 "3A"
2. Firm 3 Numeric String
3. Trader ID (sender) 4 AlphaNumeric String
4. Trader ID (receiver) 4 AlphaNumeric String
5. Contra Firm 3 Numeric String
6. Admin Message Text 66 AlphaNumeric String
Total 82

Admin Message là một message định dạng tự do, nó có thể được gửi từ công ty chứng
khoán này đến 1 công ty chứng khoán khác, từ công ty chứng khoán đến HOSE hoặc từ
HOSE đến công ty chứng khoán. Trường Contra Firm sẽ là rỗng nếu message được
truyền từ HOSE. Trường Trader ID (sender) được yêu cầu và phải chứa ID của người gửi
cho admin. Trường Trade ID (receiver) là tùy chọn và được sử dụng để nói với admin
người nhận sẽ là ai tại công ty chứng khoán khác.

35
Message 3B: Thông tin trả lời lệnh GDTT của bên mua hoặc HOSE

Field Size Type


1. Message Type 2 "3B"
2. Firm 3 Numeric String
3. Confirm number 6 Numeric String
4. Deal ID 5 Numeric String
5. Client ID (Buyer) 10 Alphanumeric
String
6. Reply Code 1 Alpha string
7. Filler 4
8. Broker Portfolio Volume 8 Numeric String
9. Broker Client Volume 8 Numeric String
10. Broker Mutual Fund Volume 8 Numeric String
11. Broker Foreign Volume 8 Numeric String
12. Filler 32
Total 95

Message này được gửi bởi người mua để cho biết là chấp nhận hay không chấp nhận của
GDTT khác công ty sau khi nhận được Put-through Acknowledgment Message từ
HOSE. Nếu người mua đồng ý giao dịch thì Client ID, Port/Client Flag phải được nhập
vào. Sau khi giao dịch đó được chấp nhận hay không chấp nhận bởi người mua, HOSE sẽ
gửi message này cho người bán. Nếu giao dịch không chấp nhận bởi HOSE, HOSE sẽ
gửi message này cho cả người mua và bán.
Reply Code
A = Chấp nhận
C = Đối tác không chấp nhận
S = HOSE không chấp nhận

36
Message 3C: Thông tin yêu cầu hủy lệnh

Field Size Type


1. Message Type 2 "3C"
2. Firm 3 Numeric String
3. Contra Firm 3 Numeric String
4. Trader ID 4 Alphanumeric String
5. Confirm Number 6 Numeric String
6. Security Symbol 8 Alphanumeric String
7. Side 1 Alpha string
Total 27

Message này được gửi bởi người mua để yêu cầu hủy một giao dịch thỏa thuận. Nó cũng
được HOSE sử dụng để chuyển yêu cầu này cho người bán. Người bán sẽ phản hồi lại
message 3D. Khi message này xuất phát từ người bán gửi đến HOSE , trường Contra
Firm ý chỉ người mua và trường Trader ID là Trader ID của người bán khởi tạo message
này. Trường hợp message này gửi từ HOSE đến người mua, trường Firm là người mua,
Contra Firm là người bán và Trader ID là Trader ID của người mua.
HOSE sẽ không kiểm tra trường Side trong message 3C nếu trường khác đã được HOSE
xác nhận chính xác. Trường Side trong message thuần của người bán được chuyển qua
cho người mua.

37
Message 3D: Thông tin trả lời yêu cầu hủy lệnh của bên mua hoặc HOSE

Field Size Type


1. Message Type 2 "3D"
2. Firm 3 Numeric String
3. Confirm Number 6 Numeric String
4. Reply Code 1 Alpha string
Total 12

Message này sẽ được gửi bất cứ khi nào thỏa thuận bị hủy, đối với những thỏa thuận
được thực hiện bởi 2 broker khác nhau, người mua sẽ gửi message này đến HOSE để trả
lời message yêu cầu hủy (3C) được gửi bởi người bán. HOSE sẽ gửi message này đến
người bán để báo cho người bán biết yêu cầu của người mua và phản hồi của HOSE với
việc hủy giao dịch. Nếu giao dịch được thực hiện bởi 1 broker, HOSE sẽ gửi message
này đến broker đó để trả lời yêu cầu hủy (3C)

38
Message RN - Retransmission Nack

Field Size Type


1. Message Type 2 "RN"
2. Firm 2 Mod-96
3. Error code 2 Alpha numeric
4. Original Message Text 478 Alpha string
Total 484

Message này sẽ được gửi ngược lại công ty chứng khoán bao gồm mã lỗi và message gốc
khi yêu cầu truyền lại không hợp lệ. Lý do từ chối được miêu tả trong error code.

39
Message RP - Retransmission Reply

Field Size Type


1. Message Type 2 "RP"
2. Firm 2 Mod-96
3. Market ID. 1 Alpha String
4. Previous Sequence Number 3 Mod-96
5. Sequence Number 3 Mod-96
6. Message Count 1 Mod-96
7. Original Broadcast Message 472 Alpha string
Total 484

Message này dùng để truyền lại Broadcast message đến công ty dựa trên yêu cầu (RQ).
Market ID là mã thị trường. Trường Sequence Number chứa số sequence của khối
message broadcast thuần. Trường Previous Sequence Number cho biết số Sequence của
khối Broadcast đã được gửi trước khối sẽ được gửi lại trong message này. Trường
Message Count chỉ ra cho biết số message trong khối được gửi lại. Đối với message đầu
tiên của quá trình gửi lại này, trường Previous Sequence Number sẽ là 0. Để duy trì sự
toàn vẹn của dữ liệu truyền lại, ký tự Unit-Separator (US) trong message broadcast thuần
sẽ được thay thế bởi ký tự BELL.

40
Message RQ - Retransmission Request

Field Size Type


1. Message Type 2 "RQ"
2. Firm 2 Mod-96
3. Market ID. 1 Alpha String
4. Retransmission Start Sequence 3 Mod-96
5. Retransmission End Sequence 3 Mod-96
Total 11

Message này cho phép một công ty yêu cầu quá trình truyền lại thông qua đường truyền
Auto-t dựa trên trường Retransmission Start Sequence và Retransmission End Sequence.

41
Message PRS:

Message AA – Thông báo về giao dịch thỏa thuận

Field Size Type


1. Message Type 2 "AA"
2. Security Number 2 Mod-96
3. Volume 4 Mod-96
4. Price 13 AlphaNumeric String
5. Firm 2 MOd-96
6. Trader 3 Mod-96
7. Side 1 Alpha String
8. Board 1 Alpha String
9. Time 3 Mod-96
10. Add/Cancel Flag 1 Alpha String
11. Contact 20 AlphaNumeric String
Total 52

Các thông báo quảng cáo này được broadcast đến tất cả các broker khi có một quảng cáo
giao dịch thỏa thuận được thêm vào hay bị hủy bỏ khỏi Hệ thống giao dịch của HOSE.

42
Message BR – Thông tin xác nhận kết quả giao dịch của một công ty chứng khoán

Field Size Type


1. Message Type 2 "BR"
2. Firm 2 Mod-96
3. Market ID 1 Alpha-numeric string
4. Volume Sold 10 Alpha-numeric string
5. Value Sold 14 Alpha-numeric string
6. Volume Bought 10 Alpha-numeric string
7. Value Bought 14 Alpha-numeric string
Total 53

Message này được gửi trong quá trình chạy dữ liệu cuối ngày để giúp broker xác nhận
chính xác dữ liệu giao dịch của họ. Nó cho từng broker biết số cổ phiếu và số tiền mà họ
đã mua hay bán được đến thời điểm đó.
Thứ tự của các broadcast message trong quá trình chạy dữ liệu cuối ngày như sau:
message SC (mã G)
các message SU,...,SU (mỗi SU ứng với một mã chứng khoán)
message SC (mã J) (khỏang 3 phút sau)
message SC (mã T)
các message BR,...,BR (mỗi BR ứng với một công ty chứng khoán)
message SC (mã U)
Message "End-of-Day Broadcast Transmissions Complete"
Message "Begin End-of-Day Procedure Now"

43
Message BS – Thông báo thay đổi trạng thái của broker

Field Size Type


1. Message Type 2 "BS"
2. Firm 2 Mod-96
3. AutoMatch Halt Flag 1 Alpha string
4. Put through Halt Flag 1 Alpha string
Total 6

Message này được gửi khi một công ty chứng khoán bị tạm dừng hay hủy tạm
dừng giao dịch

44
Message CO - Hủy giao dịch lô lẻ

Field Size Type


1. Message Type 2 "CO"
2. Reference Number 3 Mod-96
Total 5

Message được gửi khi có yêu hủy bỏ lệnh đặt giao dịch lô lẻ. Trường
“reference number” giúp hệ thống xác định đó là lệnh đặt nào.

45
Message DC – Thông báo hủy một giao dịch đã khớp

Field Size Type


1. Message Type 2 "DC"
2. Confirm Number 3 Mod-96
3. Security Number 2 Mod-96
4. Volume 4 Mod-96
5. Price 4 Mod-96
6. Board 1 Alpha string
Total 16

Message được gửi để thông báo với các broker về việc hủy một giao dịch đã
khớp. Chỉ các giao dịch thỏa thuận mới được hủy.

46
Message GA – Thông báo từ HOSE

Field Size Type


1. Message Type 2 "GA"
2. Admin message length 1 Mod-96
3. Admin message text 70 AlphaNumeric String
Total 73

Cho phép HOSE gửi các thông báo đến tất cả các broker.

47
Message IU - cập nhật chỉ số

Field Size Type


1. Message Type 2 "IU"
2. Index – HOSE 4 Mod-96
3. Total Trades 4 Mod-96
4. Total Shares Traded 5 Mod-96
5. Total Values Traded 5 Mod-96
6. Up Volume 5 Mod-96
7. Down Volume 5 Mod-96
8. No Change Volume 5 Mod-96
9. Advances (no. of stocks) 2 Mod-96
10. Declines (no. of stocks) 2 Mod-96
11. No Change (no. of stocks) 2 Mod-96
12. Filler 4
13. Market ID 1 Alpha String
14. Filler 7
15. Index – Time 3 Mod-96
Total 56

Chỉ số index của HOSE (VN Index) sẽ được broadcast đến tất cả các broker
sau từng khoảng thời gian xác định. Hiện tại là sau mỗi phút trong thời gian giao
dịch và vài phút sau khi bước vào giai đoạn kết thúc giao dịch của thị trường.
Message này không được gửi trong giai đoạn tiền mở cửa.

48
Message LO – thông tin của phiên giao dịch lô lẻ mới nhất

Field Size Type


1. Message Type 2 "LO"
2. Confirm Number 3 Mod-96
3. Security Number 2 Mod-96
4. Odd Lot Volume 2 Mod-96
5. Price 4 Mod-96
6. Reference Number 3 Mod-96
Total 16

Message này cũng giống như Message LS, nhưng nó xử lý với các giao dịch lô
lẻ. Nó được gửi đi khi có một lệnh lô lẻ được khớp.

49
Message LS – thông tin của lần giao dịch mới nhất

Field Size Type


1. Message Type 2 "LS"
2. Confirm Number 3 Mod-96
3. Security Number 2 Mod-96
4. Lot Volume 3 Mod-96
5. Price 4 Mod-96
6. Side 1 Alpha string
Total 15

Message được broadcast khi có một lệnh được khớp trong hệ thống trong thời
gian giao dịch. Các Message loại này chỉ được dùng sau khi giai đoạn mở cửa đã
hoàn tất. Mỗi Message LS tương ứng với một giao dịch khớp lệnh.
Nếu LS được phát sinh là từ lệnh mua, trường “side” sẽ mang giá trị “S”.
Ngược lại, phát sinh từ lệnh bán, trường side mang giá trị “B” (mang giá trị của
bên đối ứng). Nếu trường side là ‘ ‘ thì đó là thông tin lệnh khớp của đợt pre-open.

50
Message NH – Tiêu đề bản tin

Field Size Type


1. Message Type 2 "NH"
2. News number 2 Mod-96
3. Security Symbol 8 AlphaNumeric String
4. News headline length 1 Mod-96
5. Total News Story Pages 2 Mod-96
6. News headline text 70 AlphaNumeric String
Total 85

51
Message NS – Bản tin

Field Size Type


1. Message Type 2 "NS"
2. News Number 2 Mod-96
3. News Page Number 2 Mod-96
4. News Text Length 2 Mod-96
5. News Text 215 AlphaNumeric String
Total 223

Một Message NS sẽ chứa thông tin chi tiết của một bản tin. Nếu bản tin có
nhiều trang, nhiều Message NS sẽ được gửi đi. Message này được gửi cùng lúc
với Message NH.

52
Message OL – lệnh đặt lô lẻ

Field Size Type


1. Message Type 2 "OL"
2. Security Number 2 Mod-96
3. Odd Lot Volume 2 Mod-96
4. Price 4 Mod-96
5. Side 1 Alpha string
6. Reference Number 3 Mod-96
Total 14

Message được gửi khi có một lệnh đặt lô lẻ đến hệ thống. Nó được broadcast
đến tất cả các broker để họ cập nhật sổ lệnh. Lưu ý rằng cách nó xử lý khác với
cách xử lý của một lệnh trong main board

53
Message OS – Thông tin xác định giá mở cửa

Field Size Type


1. Message Type 2 "OS"
2. Security Number 2 Mod-96
3. Price 4 Mod-96
Total 8

Mỗi lần có một giao dịch được thực hiện trong giai đoạn mở cửa thị trường,
một message OS sẽ được gửi đi. Nếu ứng với một mã chứng khoán nào đó, không
có giao dịch nào được thực hiện trong thời gian mở cửa, một OS cũng sẽ được gửi
với giá là 0. Trong trường hợp này, khi có một giao dịch được thực hiện sau đó, hệ
thống sẽ tự động gửi lại Message OS này với trường “price” có giá trị là giá của
giao dịch vừa thực hiện. Giá này được xem như là giá mở cửa của loại chứng
khoán đó.

54
Message PD – Thông báo về khớp lệnh của giao dịch thỏa thuận

Field Size Type


1. Message Type 2 "PD"
2. Confirm Number 3 Mod-96
3. Security Number 2 Mod-96
4. Volume 4 Mod-96
5. Price 4 Mod-96
6. Board 1 Alpha string
Total 16

Message được gửi dạng broadcast khi có một giao dịch thỏa thuận được đồng
ý của 2 bên và của HOSE.

55
Message PO – Thông báo giá mở cửa dự kiến

Field Size Type


1. Message Type 2 "PO"
2. Security Number 2 Mod-96
3. Projected Open Price 4 Mod-96
Total 8

Message được broadcast trong suốt giai đoạn tiền mở cửa để thông báo với
broker về sự thay đổi của giá mở cửa dự kiến. Việc ước lượng dựa vào các lệnh
đặt hiện có trong hệ thống. Chú ý là Message PO chỉ được gửi đối với các mã
chứng khoán nào có thể có giao dịch khớp lệnh lúc mở cửa.

56
Message SC – thông điệp điều khiển hệ thống

Field Size Type


1. Message Type 2 "SC"
2. System Control Code 1 Alpha string
3. Timestamp 3 Mod-96
Total 6

Message được gửi khi hệ thống muốn điều khiển một sự kiện nào đó. Ví dụ
như khi thị trường mở cửa hay ngắt.

57
Message SI

Field Size Type


1. Message Type 2 "SI"
2. Index - Sectoral 1 4 Mod-96
3. Filler 120
4. Index – Time 3 Mod-96
Total 129

58
Message SR – Tổng kết thông tin từng mã chứng khoán

Field Size Type


1. Message Type 2 "SR"
2. Security Number 2 Mod-96
3. Main or Foreign Deal 3 Mod-96
4. Main or Foreign Acc-Volume 5 Mod-96
5. Main or Foreign Acc-Value (in 5 Mod-96
1,000)
6. Deals in Big Lot Board 2 Mod-96
7. Big Lot Acc-Volume 5 Mod-96
8. Big Lot Acc-Value (in 1,000) 4 Mod-96
9. Deals in Odd Lot Board 2 Mod-96
10. Odd Lot Acc-Volume 3 Mod-96
11. Odd Lot Acc-Value 3 Mod-96
Total 36

Message này giúp broker xác nhận một lần nữa dữ liệu giao dịch. Mỗi mã
chứng khoán ứng với một message SR. Nó được gửi trong quá trình chạy dữ liệu
cuối ngày.

59
Message SS – Thông báo thay đổi trạng thái của một mã chứng khoán

Field Size Type


1. Message Type 2 "SS"
2. Security Number 2 Mod-96
3. Filler 1
4. Sector Number 1 Mod-96
5. Filler 1
6. Halt/Resume Flag 1 Alpha string
7. System Control Code 1 Alpha string
8. Filler 1
9. Suspension 1 Alpha string
10. Delist 1 Alpha string
11. Filler 1
12. Ceiling 4 Mod-96
13. Floor Price 4 Mod-96
14. Security Type 1 Alpha string
15. Prior Close Price 4 Mod-96
16. Filler 4 Mod-96
17. Split 1 Alpha string
18. Benefit 1 Alpha string
19. Meeting 1 Alpha string
20. Notice 1 Alpha string
21. Board Lot 2 Mod-96
22. Filler 1
Total 37

Message này sẽ được gửi thông qua broadcast trong thời gian giao dịch để
thông báo với broker khi có một mã chứng khoán thay đổi trạng thái.

60
Message SU – Cập nhật mã chứng khoán

Field Size Type


1. Message Type 2 "SU"
2. Security Number (Old) 2 Mod-96
3. Security Number (New) 2 Mod-96
4. Filler 1
5. Sector Number 1 Mod-96
6. Filler 1
7. Security Symbol 8 Alphanumeric String
8. Security Type 1 Alpha string
9. Ceiling Price 4 Mod-96
10. Floor Price 4 Mod-96
11. Last Sale Price 4 Mod-96
12. Market ID 1 Alpha String
13. Filler 3
14. Security Name 25 Alpha string
15. Filler 1
16. Suspension 1 Alpha string
17. Delist 1 Alpha string
18. Halt/Resume Flag 1 Alpha string
19. Split 1 Alpha string
20. Benefit 1 Alpha string
21. Meeting 1 Alpha string
22. Notice 1 Alpha string
23. Client ID Required 1 Alpha string
24. Par Value 4 Mod-96
25. SDC Flag 1 Alpha String
26. Prior Close Price 4 Mod-96
27. Prior Close Date 8 Numeric String
28. Open Price 4 Mod-96
29. Highest Price 4 Mod-96
30. Lowest Price 4 Mod-96
31. Total Shares Traded 5 Mod-96
32. Total Values Traded 5 Mod-96
33. Board Lot 2 Mod-96
34. Filler 1
Total 110

61
Các message SU đựơc gửi trong quá trình chạy dữ liệu cuối để cung cấp các
thông tin tổng kết cuối cùng của mã chứng khoán tương ứng. Message không bao
giờ được gửi trong lúc giao dịch. Thứ tự gửi như sau
Message SC (mã G)
Các message SU,...,SU (mỗi SU ứng với một mã chứng khoán)
Message SC (mã J)
Đối với các message SU được truyền sau khi thị trường đã đóng cửa, tất cả các
giá trị của các trường là dữ liệu được dùng để phục vụ cho phiên giao dịch hôm
sau. Nếu có một cổ phiếu không có giao dịch trong ngày hôm đó, trường “Last
Sale Price” (giá của lần khớp lệnh gần nhất) sẽ có giá trị bằng với “Prior Close
Price”.
Đối với một chứng khoán đã niêm yết, thì 2 trường “Security Number” và
“Security Number (New)” luôn giống nhau.
Trường hợp niêm yết mới thì 2 trường này sẽ khác nhau. Một ngày trước khi
chứng khoán này chính thức được niêm yết, sau khi đã đóng cửa thị trường,
message SU sẽ được tạo và gửi đi, với trường “Security Number (New)” chứa mã
chứng khoán mới.

62
Message TC – Thay đổi trạng thái của trader

Field Size Type


1. Message Type 2 "TC"
2. Firm 2 Mod-96
3. Trader ID 3 Mod-96
4. Trader Status 1 Alpha string
Total 8

Message được gửi khi một trader bị đình chỉ hay huỷ đình chỉ hoặc khi trader
được cho phép hay huỷ cho phép gửi các lệnh giao dịch thoả thuận với giá nằm
ngoài khoảng trần sàn.

63
Message TP – 3 giá trị tốt nhất

Field Size Type


1. Message Type 2 "TP"
2. Security Number 2 Mod-96
3. Side 1 Alpha string
4. Price 1 (best) 4 Mod-96
5. Lot Volume 1 3 Mod-96
6. Price 2 (2nd best) 4 Mod-96
7. Lot Volume 2 3 Mod-96
8. Price 3 (3rd best) 4 Mod-96
9. Lot Volume 3 3 Mod-96
Total 26

Message được gửi khi có bất kỳ một thay đổi nào về 3 giá mua tốt nhất, 3 giá
bán tốt nhất, hay khối lượng nằm trong 3 giá mua hay bán tốt nhất. Tuy nhiên,
trong từng chu kỳ nhất định, message cũng vẫn được gửi đi mặc dù các mã chứng
khoán đó không có thay đổi gì về 3 giá tốt nhất hay khối lượng. Các lệnh ATO,
ATC được xếp ưu tiên so với lệnh giới hạn, mặc dù giá của nó sẽ được ghi nhận
bằng 0.
HOSE cần phải yêu cầu các thành viên cho hiển thị giá của các lệnh ATO,
ATC trên màn hình như sau:
• Hiển thị “ATO” cho các lệnh trong thời gian mở cửa để diễn đạt ý giao
dịch ở giá mở cửa.
• Hiển thị “ATC” cho các lệnh trong thời gian đóng cửa để diễn đạt ý giao
dịch ở giá đóng cửa.

64
Message TR – room của đầu tư nước ngoài.

Field Size Type


1. Message Type 2 "TR"
2. Security Number 2 Mod-96
3. Total Room 6 Mod-96
4. Current Room 6 Mod-96
Total 16

Message này được broadcast khi


• Đầu ngày giao dịch
• Kết thúc đợt khớp lệnh xác định giá mở cửa và bắt đầu đợt khớp lệnh liên
tục: có lệnh mua của nhà đầu tư nước ngoài được khớp.
• Đợt khớp lệnh liên tục, có lệnh mua của nhà đầu tư nước ngoài được khớp.
• Có giao dịch thoả thuận giữa bên mua là nhà đầu tư nước ngoài và bên bán
là nhà đầu tư trong nước.
• Có huỷ giao dịch thoả thuận giữa bên mua là nhà đầu tư nước ngoài và bên
bán là nhà đầu tư trong nước.
Message này sẽ thông báo số room còn lại của nhà đầu tư nước ngoài, ứng với
mã chứng khoán đó.

65
Message TS

Field Size Type


1. Message Type 2 "TS"
2. Timestamp 3 Mod-96
Total 5

Message được broadcast mỗi phút khi server không có message nào cần phải
gửi, để xác nhận với các broker rằng server vẫn hoạt động bình thường.

66
Ý nghĩa của các trường trong các message:
Accumulate Value
Một trường 5 ký tự kiểu số trong định dạng Mod96 chứa đựng giá trị tổng cộng của tất cả
giao dịch trong một phiên giao dịch
Giá trị nằm trong khoảng :
1<= n <= 8,153,729,880 ( số nguyên )
CTCI: None
Broadcast: LE

Accumulate Volume
Một trường 4 ký tự kiểu số trong định dạng Mod96 chứa đựng khối lượng tổng cộng của
tất cả giao dịch trong ngày.
Giá trị nằm trong khoảng :
1<= n <= 84,934,655 ( số nguyên)
CTCI: None
Broadcast: LE

Add/Cancel Flag
Một trường 1 ký tự chỉ ra một giao dịch được thêm vào hoặc bỏ ra từ tập tin dữ liệu giao
dịch.
Những giá trị có thể :
"A" Thêm
"C" Hủy
CTCI: 1E
Broadcast: AA

Advances
Một trường 2 ký tự kiểu số trong định dạng mod96 chỉ ra số chứng khoán tăng giá trong
ngày, được so sánh với giá đóng của của ngày hôm trước.
Giá trị nằm trong khoảng :
0 <= n <= 9,215
CTCI: None
Broadcast: IU

67
Automatch Halt Flag
Một trường 1 ký tự chỉ ra CTCK Thành viên có được thực hiện Giao dịch khớp lệnh hay
không hoặc cho biết CTCK Thành viên được phép Giao dịch khớp lệnh trở lại
Giá trị nằm trong khoảng :
“ ”: Được phép Giao dịch
“B”: Không được phép đặt lệnh Mua cho Giao dịch khớp lệnh
“S”: Không được phép đặt lệnh Bán cho Giao dịch khớp lệnh
“A”: Không được phép đặt lệnh Mua và Bán cho Giao dịch khớp lệnh
CTCI: None
Broadcast: BS

Benefit
Một trường 1 ký tự kiểu chữ chỉ ra 1 chứng khoán được giao dịch không còn quyền lợi
trước đó.
Những giá trị có thể :
"" Không sử dụng
"A" Phát hành thêm và cổ tức
"D" Chia cổ tức
"R" Thực hiện quyền
CTCI: None
Broadcast: SU, SS

Board
Một trường một ký tự kiểu chữ chỉ ra bảng giao dịch
Những giá trị có thể :
"B" Giao dich lô lớn
"M" Giao dịch khớp lệnh
"O" Giao dịch lô lẻ
CTCI: 1E, 1F, 1G, 1I, 2F
Broadcast: AA, PD, DC

Board Lot
Một trường 2 ký tự kiểu số trong định dạng mod96 chỉ ra kích thước của 1 lô của cổ
phiếu
Giá trị nằm trong khoảng :
1 <= n <= 9,215
68
CTCI: None
Broadcast: SS, SU

Broker Client Volume, Broker Foreign Volume, Broker Portfolio


Volume
1 <= n <= 84,934,655 (encoded integer)
CTCI: 8 bytes 1F, 1G, 3B
Broadcast: None

Cancel Confirm
Một trường 6 ký tự kiểu số chỉ ra confirm number của 1 thỏa thuận bị hủy hoặc hiệu
chỉnh.
CTCI: 3C, 3D
Broadcast: None

Cancel Shares
Một trường có 8 ký tự chứa số cổ phiếu được huỷ thành công từ một lệnh đặt nào đó.
Nếu lệnh đó chưa được khớp, thì giá trị này sẽ là toàn bộ số cổ phiếu trong lệnh đặt. Nếu
lệnh đã được khớp một phần, thì giá trị này là phần còn lại chưa được khớp.
CTCI: 2C
Broadcast: None

Ceiling Price
Một trường 4 ký tự kiểu số được định dạng mod96 chứa đựng giá cao nhất của chứng
khoán có thể được giao dịch trên bảng chính cho ngày hôm sau. Trường này cùng định
dạng với trường Price. Đơn vị tính của Ceiling price là 1/100 point. Giá trị thực của
Celling price được tính bằng cách lấy giá trị chia 100. ( Xem trường Price )
CTCI: None
Broadcast: SS, SU

Client ID
Một trường 10 ký tự kiểu chữ chứa đựng mã tài khoản khách hàng của công ty chứng
khoán. Thông tin này là bắt buộc và theo quy định của HOSE.
Những giá trị có thể :
- Ba ký tự đầu là mã công ty chứng khoán hoặc mã thành viên lưu ký
- Ký tự thứ 4 thì tương ứng với PC flag
69
- Những ký tự khác là những giá trị khác
- Không có khoảng trắng
PC Flag Fourth Char First three Char
P P Mã CTCK

C C Mã CTCK
M A Mã lưu ký trong nước
M B Mã lưu ký
F F Mã lưu ký hoặc mã CTCK
F E Mã lưu ký nước ngoài

CTCI: 1D, 1F, 1G, 1I, 2D, 3B


Broadcast: None

Client ID Required
Trường 1 ký tự kiểu chữ chứa mã liên quan đến đến chứng khoán. Khi mã này được thiết
lập là “Y”, thì tất cả các lệnh của chứng khoán này phải chứa Client ID.
Những giá trị có thể :
"" Không sử dụng (Client ID không yêu cầu)
"Y" Client ID yêu cầu trên tất cả các lệnh nhập vào với mã chứng khoán
CTCI: None
Broadcast: SS, SU

Confirm Number
Một số được gán bởi Hệ thống giao dịch của HOSE được dùng để xác định duy nhất cho
mỗi giao dịch. Tất cả những việc được thực hiện sau đó mà có liên quan đến giao dịch
này được xác định dựa trên Confirm Number.
Giá trị nằm trong khoảng :
1 <= n <= 884,735
CTCI: 6 bytes. 2E, 2F, 2I, 2L, 3B, 3C, 3D
Broadcast: 3 bytes (mod-96) DC, LE, PD, LS

Contact
Một trường 20 ký tự kiểu chữ chứa thông tin liên lạc cá nhân và điện thoại
CTCI: 1E

70
Broadcast: AA

Contra Firm
Một trường 3 ký tự chỉ ra công ty đối ứng của một giao dịch hay 1 message ( Xem Firm)
Giá trị nằm trong khoảng :
1 <= n <= 9215 < 2 bytes Mod-96 >
1 <= n <= 999 < 3 bytes Numeric String >
CTCI: 1G, 2F, 2L, 3C
Broadcast: None

Current Room
Một trường 6 ký tự kiểu số dưới định dạng mod96 chỉ ra số room hiện tại còn lại của nhà
đầu tư nước ngoài.
Giá trị nằm trong khoảng :
0 <= n <= 782,757,789,695
CTCI: None
Broadcast: TR

Deal ID
Một trường 5 ký tự kiểu số mà giá trị của nó được gán bởi HOSE khi thỏa thuận cùng
thành viên hay khác thành viên được nhập vào. Hệ thống HOSE trả về Deal ID trong
nhiều loại message để giúp đỡ cho hệ thống của của Broker tìm kiếm giá những thỏa
thuận giao dịch trước đó. Hệ thống HOSE không kểm tra Deal ID.
Đối với hệ thống nhập lệnh tại sàn Deal ID là rỗng.
CTCI: 1F, 1G, 2L, 3B
Broadcast: None

Declines
Một trường 2 ký tự kiểu số định dạng theo mod96 thể hiện số chứng khoán giảm giá
trong ngày, được so sánh với giá đóng của của ngày hôm trước.
Giá trị nằm trong khoảng :
0 <= n <= 9,215
CTCI: None
Broadcast: IU

Delist

71
Một trường 1 ký tự kiểu chữ chỉ ra cho biết cờ của chứng khoán.
Những giá trị có thể :
"" Không sử dụng
"D" Mã cổ phiếu bị hủy niêm yết .
CTCI: None
Broadcast: SS, SU

Down Volume
Một trường 6 ký tự kiểu số định dạng theo mod96 chứa đựng tổng khối lượng của cổ
phiếu giảm giá trong ngày. Đơn vị tính của Down Volume là 1,000. Giá trị thực của
down volume được tính bằng cách lấy giá trị nhân với 1000.
Giá trị nằm trong khoảng :
0 <= n <= 8,153,726,975
CTCI: None
Broadcast: IU

Error code
Một trường 2 ký tự kiểu số chứa đựng mã lỗi của quá trình khôi phục dữ liệu
Giá trị nằm trong khoảng :
1 <= n <= 999
01 Chiều dài message RQ sai
02 Loại message gửi trong qui trình retranmission bị sai.
03 Số broker sai.
04 Số lần yêu cầu gửi lại vượt quá giới hạn cho phép.
05 Sequence bắt đầu lớn hơn sequence kết thúc.
06 Số sequence bắt đầu nhỏ hơn sequence cuối cùng được gửi.
07 Số lượng sequence (End - Start) vượt giới hạn cho phép.
08 Thông tin file log bên broadcast không có.
09 Sequence cuối trong message yêu cầu lớn hơn sequence hiện tại trong hệ thống
HoSE Gateway.
10 Không tìm thấy message có sequence bắt đầu như yêu cầu.
99 Lỗi không xác định được.
CTCI: RN
Broadcast: none

Filler
72
Một khối ký tự rỗng không chứa đựng thông tin gì.
CTCI: 1D, 1F, 1G, 1I, 2D, 2E, 3B
Broadcast: AA, IU, SI, SU

Firm
Số firm được định nghĩa và cung cấp bởi HOSE. Trường này dùng để xác nhận công ty
nào đang nhận hay gửi message.
Giá trị nằm trong khoảng :
1 <= n <= 9215 < 2 bytes Mod-96 >
1 <= n <= 999 < 3 bytes Numeric String >

CTCI: 2 bytes. All


Broadcast: 1 byte (mod-96). AA

Floor Price
Một trường 4 ký tự số định dạng theo mod96 chứa đựng giá thấp nhất của một chứng
khoán có thể giao dịch trên bảng chính trong ngày giao dịch hôm sau. Cùng định dạng
với trường Price. Đơn vị tính của Floor Price là 1/100. Giá trị thực của Floor Price được
tính bằng cách lấy giá trị của nó chia cho 100 ( Xem Price)
CTCI: None
Broadcast: SS, SU

Halt / Resume Flag


Một trường 1 ký tự kiểu chữ chỉ ra chứng khoán đang bị tạm dừng hoặc chứng khoán đó
được giao dịch trở lại.
Những giá trị có thể :
"" Không sử dụng
"H" Tạm dừng
"R" Giao dịch lại
CTCI: None
Broadcast: SU, SS

Highest Price
Một trường 4 ký tự kiểu số theo định dạng mod96 chứa đựng thông tin giá khớp cao nhất
của một chứng khoán trên bảng chính trong ngày. Đơn vị tính của Highest Price là 1/100.
Giá trị thực của highest price tính bằng cách lấy giá trị chia cho 100.
73
Những giá trị có thể : Xem trường Price
CTCI: None
Broadcast: SU

Index – HOSE
Một trường 4 ký tự kiểu số theo định dạng mod96 chỉ ra giá trị của index tương ứng. Đơn
vị tính của index là 1/100. Giá trị index thực được tính bằng cách lấy giá trị chia cho 100
CTCI: None
Broadcast: IU

Index Time
Một trường 3 ký tự kiểu số theo định dạng mod96 chỉ ra thời gian gửi index
CTCI: None
Broadcast: IU, SI

Last Sale Price


Một trường 4 ký tự số theo định dạng mod96 chỉ ra giá trị khớp cuối cùng của chứng
khoán. Đơn vị tính của Last sale price là 1/100 point. Giá trị thực của last sale price được
tính bằng cách chia giá trị đó cho 100
CTCI: None
Broadcast: SU

Lot Volume
Một trường 5 ký tự kiểu số theo định dạng mod96 chỉ ra khối lượng giao dịch tính theo lô
Giá trị nằm trong khoảng: 0 <= n <= 84,934,655
CTCI: None
Broadcast: LE, LS

Lot Volume 1,2,3


Một trường 5 ký tự kiểu số theo định dạng mod96 chỉ ra 3 khối lượng mua hoặc bán tốt
nhất ( tính theo lô).
Giá trị nằm trong khoảng: 0 <= n <= 884,735
CTCI: None
Broadcast: TP

74
Lowest Price
Một trường 4 ký tự kiểu số định dạng theo mod96 chỉ ra giá khớp thấp nhất của chứng
khoán trong bảng chính trong ngày. Đơn vị tính của Lowest price là 1/100 point. Giá trị
thực của lowest price được tính bằng cách chia giá trị đó cho 100.
CTCI: None
Broadcast: SU

Market ID
Một trường 1 ký tự kiểu chữ chỉ ra loại của thị trường
Giá trị có thể: “A” HOSE
CTCI: None
Broadcast: IU, SU

Message Type
Một trường 2 ký tự kiểu chữ chỉ ra loại message của hệ thống
CTCI: All
Broadcast: All

Meeting
Một trường 1 ký tự kiểu chữ chỉ ra dấu hiệu của đại hội cổ đông
Những giá trị có thể :
“M” Tổ chức đại hội cổ đông
““ Không sử dụng
CTCI: None
Broadcast: SS, SU

Mutual Fund Volume


Xem trường Broker Client Volume, Broker Foreign Volume, Broker Portfolio Volume

No Change
Một trường hai ký tự kiểu số định dạng theo mod96 chỉ ra số chứng khoán không thay
đổi giá trong ngày. Trường này được so sánh với giá đóng cửa của ngày hôm trước
Giá trị nằm trong khoảng: 0 <= n <= 9,215
CTCI: None
Broadcast: IU

75
No Change Volume
Một trường 6 ký tự kiểu số định dạng theo mod96, chứa đựng tổng khối lượng giao dịch
trong ngày của những chứng khoán không thay đổi giá. Đơn vị tính của No change
volume là 1000. Giá trị thực của No change volume được tính bằng cách nhân giá trị của
trường này với 1000.
Giá trị nằm trong khoảng có: 0 <= n <= 8,153,726,975
CTCI: None
Broadcast: IU

Notice
Một trường 1 ký tự kiểu chữ chỉ ra rằng một chứng khoán được yêu cầu cung cấp thông
tin quan trọng hoặc trả lời thông tin được yêu cầu.
Những giá trị có thể :
"" Không sử dụng
"P" Chờ thông tin cần cung cấp
"R" Đã nhận thông tin cần cung cấp

CTCI: None
Broadcast: SS, SU

Open Price
Một trường 4 ký tự kiểu số định dạng theo mod96 chứa đựng giá mở cửa của một chứng
khoán. Đơn vị tính của Open Price là 1/100. Giá trị thực của open price được tính bằng
cách chia giá trị đó cho 100.
Những giá trị có thể có: Xem trường Price
CTCI: None
Broadcast: SU

Order Cancel Status


Một trường 1 ký tự kiểu chữ chứa đựng trạng thái của lệnh hủy của 1 chứng khoán giao
dịch trong ngày.
Những giá trị có thể có :
"" Hủy bởi CTCK
"S" Hủy bởi HOSE
CTCI: 2C

76
Broadcast: None

Order Entry Date


Một trường 4 ký tự kiểu ngày định dạng theo “DDMM” chỉ ra ngày của lệnh được nhập
vào hệ thống đầu tiên.
CTCI: 1C, 1D, 2B, 2C, 2D, 2E, 2I
Broadcast: None

Order Number
Giá trị nằm trong khoảng có: 1 <= n <= 84,934,655
CTCI: 1C, 1D, 1I, 2B, 2C, 2D, 2E, 2I
Broadcast: None

Original Message Text


Một trường giá trị chứa đựng dữ liệu thuần của message khi message được gửi trả lại từ
chối tới công ty chứng khoán.
CTCI: 2G
Broadcast: None

Par Value
Một trường 4 ký tự kiểu số định dạng theo mod96 chỉ ra mệnh giá của một cổ phiếu. Đơn
vị tính của Par value là 1/100. Giá trị thực của par value được tính bằng cách chia giá trị
đó cho 100.
CTCI: None
Broadcast: SU

Port/Client Flag
Một trường 1 ký tự kiểu chữ chỉ ra lệnh đó được giao dịch với tư cách tự doanh của công
ty chứng khoán của nhà đầu tư v.v…
Những giá trị có thể có :
"C" Khách hàng trong nước
"F" Khách hàng nước ngoài
"M" Quỹ đầu tư
"P" Tự doanh
CTCI: 1I, 2D (1F, 1G, 3B, 3C)
Broadcast: None

77
Price
Một trường chỉ ra giá của lệnh đặt hoặc lệnh khớp. Price có thể là số nguyên hoặc là số
thập phân dựa vào loại giao dịch. Ví dụ : 54.25 hoặc 1250. Giá trị kiểu chữ chỉ được chấp
nhận với trường hợp ATO, ATC hoặc lệnh MP.
Những giá trị có thể có :
"ATO" At The Open
OR "ATC" At The Close
OR "MP" Market Price
OR 1 <= n <= 849,346 (đối với Broadcast)
OR 1 <= n <= 999,999.999999(đối với 1E, 1F, 1G, 2F, 2L,AA)
OR 1 <= n <= 99,999.99 (đối với 1I)
OR 1 <= n <= 99,999.99 (đối với 2D, 2E, 2I)
Lưu ý : Price trong giao dịch thỏa thuận như 1F,1G thì theo kiểu đơn vị 1/1,000,000
point.

CTCI: 1E, 1F, 1G, 1I, 2D, 2E, 2F, 2I, 2L


Broadcast: AA, DC, LE, OS, PD, LS

Price 1,2,3
Một trường 4 ký tự kiểu số theo định dạng mod96 chứa đựng thông tin 3 giá mua hoặc
bán tốt nhất. Price 1 là giá tốt nhất, Price 2 là giá tốt nhất thứ 2, Price 3 là tốt nhất thứ 3.
Đơn vị tính của Price 1,2,3 là 1/100. Giá trị thực của price 1,2,3 được tính bằng cách chia
giá trị đó cho 100
Xem trường lot volume 1,2,3
CTCI: None
Broadcast: TP

Prior Close Date


Một trường 6 ký tự kiểu số chứa thông tin ngày giao dịch của ngày hôm trước . Định
dạng YYYYMMDD.
CTCI: None
Broadcast: SU

Prior Close Price


Một trường 4 ký tự kiểu số theo định dạng mod96 chứa thông tin giá đóng cửa của chứng
khoán ngày hôm trước. Giá trị của trường này giống với định dạng của trường Price.
78
Đơn vị tính của Prior Close Price là 1/100. Giá trị thực của trường này được tính bằng
cách chia giá trị này cho 100.
Giá trị nằm trong khoảng: 1 <= n <= 84,934,655 (encoded integer)
CTCI: None
Broadcast: SS, SU

Projected Open Price


Một trường 4 ký tự kiểu số theo định dạng mod96 chỉ ra giá mở cửa của một cổ phiếu
dựa trên những lệnh có trong hệ thống. Đơn vị tính của Projected open price là 1/100 .
Giá trị thực của trường này được tính bằng cách chia giá trị này cho 100.
Giá trị nằm trong khoảng: 1 <= n <= 84,934,655 (encoded integer)
CTCI: None
Broadcast: PO

Published Volume
Một trường 8 ký tự chỉa ra bao nhiêu khối lượng của lệnh đặt có trong thị trường.
Giá trị nằm trong khoảng: 1 <= n <= 84,934,655 (encoded integer)
CTCI: 8 bytes. 1I, 2D
Broadcast: None

Putthrough Halt Flag


Một trường 1 ký tự chỉ ra CTCK Thành viên có được thực hiện Giao dịch thoả thuận hay
không hoặc cho biết CTCK Thành viên được phép thực hiện Giao dịch thoả thuận trở lại
Giá trị nằm trong khoảng :
“ ”: Được phép Giao dịch
“B”: Không được phép đặt lệnh Mua cho Giao dịch thoả thuận
“S”: Không được phép đặt lệnh Bán cho Giao dịch thoả thuận
“A”: Không được phép đặt lệnh Mua và Bán cho Giao dịch thoả thuận
CTCI: None
Broadcast: BS

Reject Reason Code:


Một trường 2 ký tự kiểu số dùng để chỉ ra cho công ty chứng khoán biết lý do yêu cầu
của hành động không được thực hiện.
Những giá trị có thể có:
00 Lệnh MP nhưng không có lệnh đối ứng.
79
01 Sai bước giá.
02 Khối lượng đặt sai.
03 Yêu cầu không hợp lệ. Thị trường đã đóng cửa.
04 Sai mã chứng khoán.
05 Sai mã thành viên.
06 Sai mã trader.
07 Sai giá trị “confirm number”.
08 Đã trễ để thực hiện yêu cầu trên.
09 Sai số “Reference number”.
10 Điều kiện sai.
11 Chứng khoán bị tạm dừng giao dịch
12 Sai board
13 Thiếu thông tin mã khách hàng.
14 Loại lệnh nhập sai.
15 Cờ “P/C” nhập sai.
16 “Reply Code ” hoặc “Request Code” bị sai.
17 Sai trường “Side”: chỉ được là mua (B), hoặc bán (S).
18 Sai thông tin “Order Number”.
19 Sai thông tin “Time”.
20 Sai thông tin “Date”.
24 Chứng khoán đang bị treo, không được giao dịch.
25 Thiếu thông tin trường “P/C”.
27 Không còn room cho loại chứng khoán đó.
29 Thị trường đang tạm ngừng giao dịch.
31 Không được phép thay đổi thông tin đối với lệnh đã khớp.
33 Không được phép giao dịch với Chứng khoán đã yêu cầu.
34 Nhập giá lớn hơn giá trần.
35 Nhập giá nhỏ hơn giá sàn.
36 Sai định dạng của giá trong lệnh thoả thuận.
37 Không được phép huỷ một lệnh đã được khớp.
38 Sai thông tin “Volume” trong giao dịch thoả thuận.
41 Sai thông tin “Market ID”.
42 Sai loại message (trường “message type”).
43 Thông tin về Chiều dài message (Message Length) sai.
44 Sai thông tin “Customer ID”.

80
45 Sai thông tin “Filler”.
99 Lỗi không xác định.
CTCI: 2G
Broadcast: None

Reply Code
Một trường 1 ký tự kiểu chữ dùng để phản hồi lại yêu cầu của việc hủy lệnh hoặc sự hiệu
chỉnh của một thỏa thuận.
Những giá trị có thể có:
"A" Chấp thuận.
"C" Bên đối tác không chấp thuận
"S" HOSE không chấp thuận.
CTCI: 3B, 3D
Broadcast: None

SDC Flag
Một cờ dùng để chỉ ra chứng khoán đó có trong SDC không. Trường này được thêm vào
trong ASSET V3.0
Những giá trị có thể có:
"Y" Mã cổ phiếu có trong SDC
"N" Mã cổ phiếu không có trong SDC
CTCI: None
Broadcast: SU

Sector Number
Một trường 1 ký tự kiểu số định dạng theo mod96 chứa đựng số của một nhóm lĩnh vực
chứng khoán.
Giá trị nằm trong khoảng: 0 <= n <= 95
CTCI: None
Broadcast: SS, SU

Security Name
Một trường 25 ký tự kiểu chữ chứa đựng tên đầy đủ của 1 chứng khoán. Tên phải bắt đầu
bằng ký tự A-Z. Tên có thể chứa khoảng trằng hoặc dấu gạch ngang (-).
CTCI: None

81
Broadcast: SU

Security Number, Security Number (New)


Một trường 2 ký tự kiểu số định dạng theo mod96 để xác định một chứng khoán. Một giá
trị số nguyên duy nhất được gán vào mỗi chứng khoán được giao dịch trên HOSE. Số
này có thể thay đổi khi có một chứng khoán bị hủy. Điều này để loại trừ khoảng trống
trong dãy số. Vì thế, khi có thao tác đánh số lại, các mã chứng khoán sẽ được gán một số
security number mới.

Giá trị nằm trong khoảng có : 1 <= n <= 4000 (encoded integer)
CTCI: None
Broadcast: AA, DC, LE, OS, PD, PO, SS, SU, TP, TR, LS

Security Symbol
Một trường 8 ký tự kiểu chữ chứa đựng mã chứng khoán được dùng ở HOSE.
CTCI: 1E, 1F, 1G, 1I, 2F, 3C
Broadcast: SU

Security Type
Một trường 1 ký tự kiểu chữ chỉ ra loại của 1 chứng khoán.
Những giá trị có thể có:
"D" Trái phiếu
"S" Cổ phiếu
"U" Chứng chỉ quĩ
CTCI: None
Broadcast: SS, SU

Side
Một trường 1 ký tự kiểu chữ xác định bên mua hoặc bên bán của 1 giao dịch. Trường này
có thể để trống trong message xác nhận thỏa thuận (deal confirmation messages ) mà
message này là kết quả của 1 giao dịch thỏa thuận cùng thành viên.
Những giá trị có thể có :
"X" Giao dịch cùng công ty.
"B" Là bên bán.
"S" Là bên mua.
Trường “side” nếu nằm trong message 3C gửi từ HOSE thì hệ thống sẽ không kiểm tra.

82
CTCI: 1E, 1I, 2E, 2F, 2L, 3C
Broadcast: AA, LE, TP, LS

Split
Một trường chỉ ra chứng khoán đó đang giao dịch ngày đầu tiên sau khi chứng khoán đó
được chia.
Những giá trị có thể có :
"" Không sử dụng
"S" Chứng khoán được chia
CTCI: None
Broadcast: SS, SU

Suspension
Một trường 1 ký tự kiểu chữ chỉ ra chứng khoán bị tạm dừng giao dịch.
Những giá trị có thể có :
"" Không sử dụng
"S" Chứng khoán bị treo.
CTCI: None
Broadcast: SS, SU

System Control Code


Một trường mô tả một sự kiện điều khiển của hệ thống
Những giá trị có thể có :
"" Không sử dụng
"A" Bắt đầu đợt giao dịch khớp lệnh xác định giá đóng cửa.
"C" Thị trường đóng cửa, chuyển sang giao dịch thoả thuận.
"G" Bắt đầu quá trình truyền thông tin tổng kết cuối ngày.
"H" Ngưng thị trường giao dịch.
"J" Kết thúc quá trình truyền thông tin tổng kết cuối ngày.
"K" Kết thúc toàn bộ giao dịch trong ngày.
"N" Khôi phục lại hoạt động cho một loại chứng khoán nào đó.
"O" Thị trường mở cửa.
"P" Bắt đầu đợt giao dịch khớp lệnh giá mở cửa.
"R" Khôi phục lại toàn bộ hoạt động giao dịch.
"X" Lệnh đặt không được phép đối với loại chứng khoán đã yêu cầu.

83
CTCI: None
Broadcast: 1 byte. SC, SS

Time
Một trường 6 ký tự kiểu số theo định dạng “HHMMSS”. Giờ đươc xác định dựa trên 24
giờ.
CTCI: 6 bytes. 1E
Broadcast: 3 bytes (Mod-96) AA.

Timestamp
Một trường 3 ký tự kiểu số theo định dạng mod96 chỉ ra thời gian của message được gửi
từ phía HOSE. Định dạng của Timestamp là “HHMMSS” theo định dạng 24 giờ.
CTCI: None
Broadcast: SC

Total Room
Một trường 6 ký tự kiểu số theo định dạng mod96 chứa đựng tổng khối lượng chứng
khoán nhà đầu tư nước ngoài được mua.
Giá trị nằm trong khoảng có: 0 <= n <= 782,757,789,695
CTCI: None
Broadcast: TR

Total Shares Traded


Một trường 5 ký tự kiểu số địng dạng theo mod 96 chứa đựng tổng khối lượng được giao
dịch trong ngày.
Giá trị nằm trong khoảng có: 1 <= n <= 8,153,726,975
CTCI: None
Broadcast: IU, SU

Total Trades
Một trường 4 ký tự kiểu số theo định dạng mod96 chứa đựng tổng số giao dịch được thực
hiện trong ngày.
Giá trị nằm trong khoảng có: 1 <= n <= 84,934,655 (encoded integer)
CTCI: None
Broadcast: IU

84
Total Values Traded
Một trường 5 ký tự kiểu số theo định dạng mod96 chứa đựng tổng giá trị của tất cả giao
dịch trong ngày(giá trị ở dạng nghìn đồng). Giá trị của Total values traded theo kiểu đơn
vị1000. Giá trị thực được tính bằng cách nhân giá trị đó với 1000.
Giá trị nằm trong khoảng có: 1 <= n <= 8,153,726,975
CTCI: None
Broadcast: IU, SU

Trader ID
Một trường 4 ký tự chỉ ra 1 người giao dịch xác định. Trường này được gán bởi HOSE,
xác định 1 người giao dịch cụ thể đã đăng ký với HOSE và có quyền sử dụng hệ thống
giao dịch.
Giá trị nằm trong khoảng :
xxxx : x = 0-9
CTCI: 1E, 1F, 1G, 1I, 2F, 3C
Broadcast: None

Trader Status
Một trường 1 ký tự chỉ ra trạng thái của Trader, Hose có thể tạm ngưng giao dịch của
Trader bất kỳ lúc nào mà không phụ thuộc vào trạng thái thị trường
Giá trị nằm trong khoảng :
“N”: Được phép giao dịch
“S”: Không được phép giao dịch

CTCI: None
Broadcast: TC

Up Volume
Một trường 6 ký tự kiểu số định dạng theo mod96 chứa đựng tổng khối lượng giao dịch
của những chứng khoán tăng trong ngày. Giá trị của Up volume theo kiểu đơn vị1000.
Giá trị thực của trường này được tính bằng cách nhân giá trị này với 1000.
Giá trị nằm trong khoảng có: 0 <= n <= 8,153,726,975
CTCI: None
Broadcast: IU

85
Volume
Số lượng cổ phiếu hay chứng chỉ quỹ, trái phiếu được giao dịch
trong giờ giao dịch.

Giá trị nằm trong khoảng có: 1 <= n <= 84,934,655 (encoded integer)

CTCI: 8 bytes 1E, 1I, 2E, 2F, 2I, 2L (1F, 1G, 3B)
Broadcast: 4 bytes (mod-96) AA, DC, PD

86
Lưu đồ các message:
Lưu đồ của message điều khiển (SC)
SET Firm Contra Firm
Pre-Open Period
SC code P ++++++++++>

Market Opens
SC code O ++++++++++>

Intermission
SC code I ++++++++++>
End Intermission
SC code F ++++++++++>

Pre-Open
SC code P ++++++++++>

Market Opens
SC code O ++++++++++>

Call Market
SC code A ++++++++++>

Runoff
SC code C ++++++++++>

Market close
SC code K ++++++++++>

Bắt đầu gửi SU


SC Code G ++++++++++>
Gửi SU
Kết thúc gửi SU
SC Code J ++++++++++>
Market Halt
SC code H ++++++++++>

SC Code P ++++++++++>

Lưu đồ của các message từ pre-open sang open


SET Firm Contra Firm
Pre-Open
Period
<---------- 1I
2B ---------->
<---------- 1I
2B ---------->
TP
++++++++>
PO
++++++++>
Market Open

87
OS
++++++++>
2E/2I ---------->
2E/2I ---------->
LS
++++++++>
TP
++++++++>

Lưu đồ của các message với các lệnh đặt ATO/ATC


SET Firm Contra Firm
Pre-Open
Period
<---------- 1I
(ATO/ATC)
2B ---------->
<---------- 1I
(ATO/ATC)
2B ---------->
TP
++++++++>
PO
++++++++>

Market Open
Nếu khớp
2E/2I ---------->
2E/2I ---------->
OS (không gửi ++++++++++
đối với trường >
hợp ATC )
LS ++++++++++
>
TP ++++++++++
>

Nếu không
khớp hoặc
phần còn lại
2C ---------->
2C ---------->
TP +++++++++>

Lưu đồ xử lý lệnh đặt


SET Firm Contra Firm
During Trade
<---------- 1I
2B/2E/2I ---------->
Nếu nằm trong
3 giá cao/thấp
nhất
TP
++++++++>

88
<---------- 1I

Nếu khớp
2E/2I ---------->
2E/2I ---------->
LS
++++++++>
TP
++++++++>

Nếu không
khớp nằm
trong 3 giá
cao/thấp nhất
TP
++++++++>

Lưu đồ xử lý lệnh thị trường (MP)


SET Firm Contra Firm
<---------- 1I (MP)

Không khớp
2C ---------->

Khớp
2E/2I ---------->
2E/2I ---------->
LS
++++++++>
TP
++++++++>

Phần còn lại


2D ---------->
TP
++++++++>

Lưu đồ message thay đổi lệnh


SET Firm Contra Firm
<---------- 1I
2B/2E/2I ---------->
<---------- 1D (thay đổi)
2D ---------->

Nếu có sự thay đổi về lệnh đặt, cho dù lệnh đó đã khớp hết, chỉ khớp một phần
hay không khớp, thì yêu cầu thay đổi sẽ làm ảnh hưởng lên cả phần lệnh đặt và khớp.
Nếu có sự thay đổi cho một lệnh đã huỷ, thì sự thay đổi đó cũng có tác động
lên cả phần lệnh đặt và khớp.
89
Lưu đồ message yêu cầu huỷ lệnh
SET Firm
<---------- 1I (order)
2B (order confirm) ---------->
<---------- 1C
2C (cancel confirm) ---------->

Nếu ảnh hưởng đến khối


lượng của 3 giá cao/thấp
nhất
TP ++++++++++>

Lưu đồ khớp giao dịch thoả thuận cùng công ty


SET Firm
(Seller=01)
<--------- 1F
2L --------->
PD +++++++++>

Lưu đồ huỷ một giao dịch thoả thuận cùng công ty


SET Firm
(Seller=01)
<--------- 3C

• Nếu HOSE
không chấp nhận
3D (code S) --------->

• Nếu HOSE chấp


nhận
3D (code A) --------->
DC +++++++++>

• HOSE không làm Không có


gì message nào
gửi từ hệ thống

Lưu đồ khớp giao dịch thoả thuận khác công ty


SET Firm Contra Firm
(seller=01) (buyer=02)
<--------- 1G
2F --------->

90
• Nếu đối ứng
không chấp nhận
<--------- 3B (code C)
3B(C) ---------> --------->

• Nếu đối ứng


chấp nhận
<--------- 3B (code A)
2L ---------> --------->
PD +++++++++>

• Nếu đối ứng


chấp thuận lệnh
mua nước ngoài
nhưng không đủ
room
<--------- 3B (code A)
3B (code S) ---------> --------->

• Nếu đối ứng Không có


không làm gì cả message nào
gửi từ hệ thống

Lưu đồ hủy lệnh thoả thuận (chỉ dành cho trường hợp khác công ty)
SET Firm Contra Firm
(seller=01) (buyer=02)
<--------- 3C
3C --------->

• Nếu đối ứng không


chấp nhận
<--------- 3D (code C)
3D(C) --------->

• Nếu đối ứng chấp


nhận
<--------- 3D (code A)
- Nếu HOSE không
chấp nhận
3D(S) ---------> --------->

- Nếu HOSE chấp


nhận
3D(A) ---------> --------->
DC +++++++++>

- Nếu đối ứng chấp Không có me


nhận nhưng HOSE
không làm gì hết

91
• Nếu đối ứng không Không có
làm gì message nào
được gửi từ hệ
thống

Lưu đồ quảng cáo giao dịch thoả thuận


SET Firm

<--------- 1E
AA +++++++++>

Đơn vị của các trường giá trị số:


1. Đơn vị tính 1000:
Là trường số có 6 ký tự, biểu diễn dưới dạng mod 96, chứa giá trị đã được chia
cho 1000
VD: Giá trị thực của một số là 100 000, được biểu diễn dưới dạng mod 96, đơn
vị tính 1000 là
modulo-96 (100,000/1,000)] = 14
Vì vậy, khi muốn tính giá trị thật của trường này, đầu tiên phải demode 96, sau
đó nhân với 1000

CTCI: None
Broadcast: IU, SU

2. Đơn vị tính 1/100:


Là trường số có 4 ký tự, biểu diễn dưới dạng mod 96, chứa giá trị đã được
nhân cho 100.
VD: Giá trị thực của một số là 10, thì nó sẽ được biểu diễn là
[modulo-96 (10*100)]
Vì vậy, khi muốn tính giá trị thật của trường này, đầu tiên phải demode 96, sau
đó chia cho 100.
CTCI: None
Broadcast: DC, IU, LE, OS, PD, PO, SI, SS, SU, TP

3. Đơn vị tính 1/1000000


Là trường số có 12 ký tự chứa giá trị đã được nhân cho 1000000
VD: Giá trị thực của một số là 1234.50, thì nó sẽ được biểu diễn là

92
[1,234.50*1,000,000]
Vì vậy, khi muốn tính giá trị thật của trường này phải chia nó cho 1000000
CTCI: 1E, 1F, 1G, 2F, 2L
Broadcast: None

93
V . Bảng tóm lược các message được gửi trong từng giai đoạn
CTCI messsage:
Pre- Open Call Run- Close Begin End Eod
CTCI Messages Open off SU SU
System Code p O A C K G J
1C - Order Cancellation Yes Yes Yes
1D - Order Change Yes Yes Yes
1E - Advertisement Yes Yes Yes
Announcement
1F - One Firm Put-Through Yes Yes Yes
Deal
1G - Two Firm Put-Through Yes Yes Yes
Deal
1I – New Order Yes Yes Yes

2B - Order Confirmation Yes Yes Yes


2C - Confirmation of Order Yes Yes Yes
Cancellation
2D - Confirmation of Order Yes Yes Yes Yes
Change
2E - Confirmation of Deal Yes Yes
2F - Put-Through Yes Yes Yes
Acknowledgement
2G - Reject Yes Yes Yes Yes
2I - Confirmation of Crossing Yes Yes
Deal
2L - PT Deal Confirmation Yes Yes Yes

3B - Put-Through Deal Reply Yes Yes Yes


3C - Deal Cancel/Change Yes Yes Yes
Request
3D - Deal Cancel/Change Yes Yes Yes
Reply

1. PRS message:
Pre- Open Call Run- Close Begin End Eod
Broadcast Messages Open off SU SU
System Code P O A C K G J
Advertisement Announcement Yes Yes Yes
(AA)
Deal Cancellation Notice (DC) Yes Yes Yes
Index Update (IU) Yes Yes Yes Yes
Last Sale(LS) Yes Yes
Market Open Last Sale (OS) Yes
Put Through Deal Notice (PD) Yes Yes Yes
Projected Open (PO) Yes Yes
System Control (SC) Yes Yes Yes Yes Yes Yes Yes
Sectoral Index (SI) Yes Yes Yes Yes
Security Status Change (SS) Yes Yes Yes Yes Yes
Security Update (SU) Yes
Top Prices (TP) Yes Yes Yes Yes

94
Lưu đồ message giữa Sở và Công ty chứng khoán

Broker
Front system A’, B’
Broadcast

B Exchange system
DCTerm B’
CTCI(A,A’,B,B’)

CTCI

PRS
PRS

A là message từ CTCK và A’ là message phản hồi của A.


B là message từ CTCK và B’ là message phản hồi của B.

95

You might also like