Tổng quan
Endpoint: Các loại lệnh dùng chung một endpointPOST /accounts/:accountNo/orders
- Path Variables:
accountNolà bắt buộc, lấy từ Endpoint Tài khoản giao dịch. - Query params
orderCategoryvàmarketTypedùng để phân biệt thị trường và loại lệnh giao dịch - Body request:
Lệnh thường (NORMAL)
Vòng đời lệnh thường
Vòng đời lệnh thường mô tả các trạng thái mà một lệnh có thể đi qua kể từ lúc bạn gửi yêu cầu đến khi kết thúc.Trạng thái lệnh
Loại lệnh theo sàn
Giá trị hợp lệ củaorderType phụ thuộc vào sàn của mã chứng khoán:
Quy tắc giá và khối lượng
quantity: Khối lượng đặt- Khối lượng đặt không vượt quá khối lượng tối đa có thể mua (
qmaxBuy)hoặc có thể bán (qmaxSell) trên tiểu khoản giao dịch, lấy từ Endpoint /Sức mua, sức bán. - Với giao dịch cơ sở, khối lượng đặt là lô chẵn (100,200,…) hoặc lô lẻ (1,2,..99). Khối lượng lẻ lô (101,102,…) là không hợp lệ.
- Khối lượng đặt không vượt quá khối lượng tối đa có thể mua (
price: Giá đặt- Nếu
orderType=LO, giá đặt phải > 0 và phải nằm trong khoảng giá trần sàn của mã chứng khoán tại phiên giao dịch đó. - Nếu
orderType≠LO, giá đặt truyền lên luôn = 0.
- Nếu
symbol - loanPackageId. Nếu mua cùng mã nhưng khác gói vay → tạo Positions tách biệt (rủi ro được quản trị riêng).
Sửa lệnh
Chỉ áp dụng cho lệnh thường (orderCategory=NORMAL)
Điều kiện chung:
- Chỉ được sửa lệnh LO trong phiên giao dịch liên tục và áp dụng cho lệnh ở trạng thái Chờ khớp (New) hoặc Đã khớp một phần (PartiallyFilled)
- Giá sửa phải nằm trong biên độ trần sàn của mã chứng khoán vào phiên giao dịch đó.
- Nếu giá hoặc khối lượng sau khi sửa vượt quá sức mua /sức bán cho phép, yêu cầu sửa lệnh sẽ bị từ chối.
- Khi sửa lệnh thành công, hệ thống hủy lệnh hiện tại và đặt lại một lệnh mới với thông tin đã chỉnh sửa.
- Cho phép sửa đồng thời giá và khối lượng.
- Thứ tự ưu tiên của lệnh sau khi sửa sẽ được xác định lại theo thời điểm ghi nhận sửa lệnh thành công.
- Người dùng chỉ được phép sửa hoặc giá hoặc khối lượng trong một yêu cầu.
- Khối lượng sửa phải lớn hơn khối lượng đã khớp (nếu lệnh đã khớp một phần).
- Nếu khối lượng sửa lớn hơn khối lượng ban đầu, thứ tự ưu tiên của lệnh sẽ được thay đổi.
Lệnh STOP
Lệnh STOP là lệnh dừng có điều kiện, khi giá thị trường đạt đến mức giá kích hoạt (stopPrice), hệ thống sẽ tự động tạo một lệnh giao dịch thông thường (NORMAL) với thông số mà người dùng đã thiết lập trước và gửi lên Sở giao dịch để thực hiện khớp lệnh.Phân biệt hai nhóm trường trong request
Đây là điểm dễ nhầm nhất khi tích hợp lệnh STOP. Body request chứa hai nhóm trường với ngữ nghĩa khác nhau: Thuộc về lệnh STOP — kiểm soát điều kiện kích hoạt:
Thuộc về lệnh thường NORMAL sẽ được sinh ra — thông số của lệnh gửi lên Sở khi kích hoạt:
Trạng thái lệnh
Sau khi lệnh STOP chuyển sang trạng thái
activated, hệ thống sẽ sinh lệnh giao dịch thông thường (NORMAL). Từ thời điểm này, lệnh NORMAL sẽ tuân theo vòng đời và trạng thái của lệnh giao dịch thông thường.
Lệnh OCO
Lệnh OCO (One Cancels the Other) là lệnh điều kiện kết hợp giữa chốt lời (Take Profit) và cắt lỗ (Stop Loss) trong cùng một yêu cầu đặt lệnh. Chỉ áp dụng cho phái sinhDERIVATIVE.
Cơ chế hoạt động:
- Người dùng gửi yêu cầu đặt lệnh OCO, hệ thống ghi nhận
- Khi lệnh OCO được kích hoạt, hệ thống gửi một lệnh thường (NORMAL) loại lệnh LO với giá chốt lời (
price) lên Sở trong giờ giao dịch - Trong thời gian lệnh LO đang chờ khớp, hệ thống tiếp tục theo dõi giá thị trường.
- Nếu giá thị trường đạt điều kiện cắt lỗ (
stopPrice) trước khi lệnh LO khớp toàn bộ → hệ thống tự động sửa giá lệnh LO sang giá cắt lỗ (stopOrderPrice). - Tại một thời điểm chỉ có một lệnh LO được gửi lên Sở giao dịch.
