Models
Các model dữ liệu và message streaming trong Go SDK
Tất cả model là Go struct. Import từ package tương ứng.
Field kiểu con trỏ (*float64, *int, *string) là nil khi server không gửi giá trị đó; điều này khác với giá trị 0. Hãy kiểm tra nil trước khi đọc.
Cấu trúc Package
ssi-sdk-go/v3/
├── ssi/ → Auth, Data, Trading, Stream (import chính)
├── auth/ → Token, OTPResponse
├── account/ → Account, AccountType
├── market/ → OHLCData, MarketIndexes, MarketIndexSummary, SecuritiesInfo, SecuritiesSummary, MasterData, CorporateAction
├── trading/ → PlaceOrderResponse, ModifyOrderResponse, CancelOrderResponse, MaxBuySellResponse, Batch*, FCOInfo, FCOListResponse, FCOOrder, ...
├── portfolio/ → EquityAccountBalance, DerivativeAccountBalance, EquityPosition, DerivativePosition, Order
├── stream/ → TradeMessage, QuoteMessage, IndexTickMessage, OrderStatusMessage, PortfolioMessage, FCOOrderUpdateMessage, ...
├── tradingws/ → Service (Trading WebSocket), Response, OrderBookQuery
└── (root) → SSIError, APIError, AuthenticationError, ...Xác thực
Token
| Field | Kiểu | Mô tả |
|---|---|---|
AccessToken | string | Access token |
TokenType | string | Loại token (mặc định "Bearer") |
ExpiresAt | int64 | Thời điểm hết hạn, Unix epoch tính bằng giây |
RefreshToken | string | Refresh token |
RefreshTokenExpiresAt | int64 | Thời điểm hết hạn refresh token, Unix epoch giây (key server refreshExpiresAt) |
Method: EffectiveExpiresAt(), CanRefresh(). String() / GoString() không bao giờ in token.
OTPResponse
Trả về bởi RequestOTPTyped().
| Field | Kiểu | Mô tả |
|---|---|---|
Message | string | Thông báo từ server |
TransactionID | string | Mã giao dịch, chỉ dùng cho Smart OTP. Truyền vào Authenticate / EnsureAuthenticated |
Tài khoản
Account
| Field | Kiểu | Mô tả |
|---|---|---|
AccountNo | string | Số tài khoản |
AccountType | *account.AccountType | "Cash", "Margin" hoặc "Derivative". nil khi thiếu; giá trị lạ được giữ nguyên dạng chuỗi (xem Enums) |
Dữ liệu thị trường
OHLCData
| Field | Kiểu | Mô tả |
|---|---|---|
Symbol | string | Mã chứng khoán |
TradingDate | string | Ngày giao dịch |
OpenPrice | float64 | Giá mở |
HighPrice | float64 | Giá cao |
LowPrice | float64 | Giá thấp |
ClosePrice | float64 | Giá đóng |
Volume | int | Khối lượng |
Value | float64 | Giá trị giao dịch |
MarketIndexes
| Field | Kiểu | Mô tả |
|---|---|---|
Index | string | Mã chỉ số |
IndexName | string | Tên chỉ số |
Board | *market.Board | Sàn, nil nếu giá trị không phải sàn đã biết |
BoardRaw | *string | Sàn đúng như server gửi |
MarketIndexSummary
| Field | Kiểu | Mô tả |
|---|---|---|
TradingDate | string | Ngày giao dịch |
IndexValue | float64 | Giá trị chỉ số |
IndexChange | float64 | Thay đổi |
IndexChangePercent | float64 | Thay đổi (%) |
TotalTrade | int | Tổng khối lượng giao dịch |
TotalTradeValue | float64 | Tổng giá trị giao dịch |
TotalAdvanceStock | int | Số CP tăng |
TotalDeclineStock | int | Số CP giảm |
TotalSteadyStock | int | Số CP không đổi (key server totalNoChangeStock) |
TotalMatch | int | Tổng khối lượng khớp |
TotalMatchValue | float64 | Tổng giá trị khớp |
TotalDeal | int | Tổng khối lượng thoả thuận |
TotalDealValue | float64 | Tổng giá trị thoả thuận |
TotalCeilingStock | int | Số CP trần |
TotalFloorStock | int | Số CP sàn |
TotalPropBuy | int | Tổng KL mua tự doanh |
TotalPropBuyValue | float64 | Tổng GT mua tự doanh |
TotalPropSell | int | Tổng KL bán tự doanh |
TotalPropSellValue | float64 | Tổng GT bán tự doanh |
TotalBuyForeign / TotalBuyForeignValue | *float64 | KL / GT mua của khối ngoại |
TotalSellForeign / TotalSellForeignValue | *float64 | KL / GT bán của khối ngoại |
NetPurchasesForeignVolume / NetPurchasesForeignValue | *float64 | KL / GT mua ròng của khối ngoại |
Lưu ý:
MarketIndexSummarykhông có fieldIndex/Boardriêng — dùng tham số truy vấn của method (GetIndexSummary(index)/GetBoardSummary(board)) để xác định phạm vi kết quả.
SecuritiesInfo
Giá trị thiếu là nil, không phải 0 / chuỗi rỗng.
| Field | Kiểu | Mô tả |
|---|---|---|
Symbol | string | Mã chứng khoán |
Board | *market.Board | Sàn |
Index | string | Chỉ số |
SymbolNameVi | string | Tên tiếng Việt |
SymbolNameEn | string | Tên tiếng Anh |
LotSize | *int | Lô giao dịch |
ListedShares | *int | Số CP niêm yết |
ICBCode | *string | Mã ICB |
ICBName | *string | Tên ICB |
MaturityDate | *string | Ngày đáo hạn |
FirstTradingDate | *string | Ngày GD đầu tiên |
LastTradingDate | *string | Ngày GD cuối cùng |
CWUnderlyingSymbol | *string | Mã CK cơ sở CW |
CWExercisePrice | *float64 | Giá thực hiện CW |
CWExecutionRatio | *float64 | Tỷ lệ thực hiện CW |
IIndex | *float64 | Chỉ số I |
INAV | *float64 | Giá trị iNAV |
OpenInterest | *float64 | Khối lượng mở (phái sinh) |
SettlementPrice | *float64 | Giá thanh toán (phái sinh) |
StockType | *string | Loại chứng khoán |
SecuritiesSummary
| Field | Kiểu | Mô tả |
|---|---|---|
Symbol | string | Mã chứng khoán |
TradingDate | string | Ngày giao dịch |
PriceChange | float64 | Thay đổi giá |
PriceChangePercent | float64 | Thay đổi giá (%) |
OpenPrice | float64 | Giá mở |
HighPrice | float64 | Giá cao |
LowPrice | float64 | Giá thấp |
ClosePrice | float64 | Giá đóng |
AveragePrice | float64 | Giá trung bình |
TotalMatch | int | Tổng khối lượng khớp |
TotalMatchValue | float64 | Tổng giá trị khớp |
TotalBuy | int | Tổng KL mua |
TotalTradeBuy | float64 | Tổng GT mua |
TotalSell | int | Tổng KL bán |
TotalTradeSell | float64 | Tổng GT bán |
TotalForeignBuy / TotalForeignBuyValue | int / float64 | KL / GT mua của khối ngoại |
TotalForeignSell / TotalForeignSellValue | int / float64 | KL / GT bán của khối ngoại |
RemainForeignRoom / TotalForeignRoom | int | Room ngoại còn lại / tổng room ngoại |
TotalDeal / TotalDealValue | int / float64 | KL / GT thoả thuận |
OpenInterest / SettlementPrice | float64 | Khối lượng mở / giá thanh toán (phái sinh) |
Ceiling / Floor / RefPrice | *float64 | Luôn là nil ở đây vì endpoint này không gửi các giá trị đó. Dùng GetMasterData |
MasterData
Trả về bởi GetMasterData() và GetMasterDataHistorical(from, to).
| Field | Kiểu | Mô tả |
|---|---|---|
Board | market.Board | Sàn (chuỗi thô nếu SDK không biết sàn đó) |
Symbol | string | Mã chứng khoán |
TradingDate | string | Ngày giao dịch |
Ceiling | float64 | Giá trần |
Floor | float64 | Giá sàn |
RefPrice | float64 | Giá tham chiếu |
CorporateAction
Trả về bởi GetCorporateActions(opts...) và GetCorporateActionsHistorical(from, to, opts...) (xem 3.7. Sự kiện quyền). Mọi field là string đúng như server gửi; field trống, null hoặc không có là "".
| Field | Kiểu | Mô tả |
|---|---|---|
Symbol | string | Mã chứng khoán |
EventTitle | string | Tiêu đề sự kiện (theo ngôn ngữ yêu cầu, "vn" hoặc "en") |
ExrightDate | string | Ngày ex-right, dạng text YYYY/MM/DD |
RecordDate | string | Ngày chốt quyền, dạng text YYYY/MM/DD |
IssueDate | string | Ngày phát hành, dạng text YYYY/MM/DD |
Exchange | string | Sàn giao dịch |
Ratio | string | Tỷ lệ, không được parse (ý nghĩa tuỳ loại sự kiện) |
Danh mục
Method không tìm thấy dữ liệu sẽ trả về nil (không phải struct rỗng): các method số dư, PPMMR và vị thế phái sinh trả con trỏ nil, còn GetEquityPositions trả slice nil. Hãy kiểm tra nil / len(...) == 0.
EquityAccountBalance
| Field | Kiểu | Mô tả |
|---|---|---|
AccountNo | string | Số tài khoản |
AccountBalance | float64 | Số dư tài khoản (tiền mặt khả dụng) |
TotalDebt | float64 | Tổng nợ |
InterestLoan | float64 | Lãi vay |
OverdueFeeLoan | float64 | Phí quá hạn |
Withdrawable | float64 | Tiền có thể rút |
OnHoldCash | float64 | Tiền giữ |
SellUnmatched | float64 | Bán chưa khớp |
SellT0 | float64 | Tiền bán T+0 |
SellT1 | float64 | Tiền bán T+1 |
SellT2 | float64 | Tiền bán T+2 |
BuyUnmatched | float64 | Mua chưa khớp |
BuyT0 | float64 | Tiền mua T+0 |
BuyT1 | float64 | Tiền mua T+1 |
BuyT2 | float64 | Tiền mua T+2 |
AdvanceCashT0 | float64 | Ứng trước T+0 |
AdvanceCashT1 | float64 | Ứng trước T+1 |
HoldSubscription | float64 | Giữ đăng ký mua |
Dividend | float64 | Cổ tức |
DerivativeAccountBalance
| Field | Kiểu | Mô tả |
|---|---|---|
AccountNo | string | Số tài khoản |
AccountBalance | float64 | Số dư tài khoản |
Fee | float64 | Phí |
Commission | float64 | Hoa hồng |
Interest | float64 | Lãi |
ExtInterest | float64 | Lãi mở rộng |
Loan | float64 | Khoản vay |
DeliveryAmount | float64 | Giá trị giao hàng |
FloatingPL | float64 | Lãi/lỗ chưa thực hiện |
TradingPL | float64 | Lãi/lỗ giao dịch |
TotalPL | float64 | Tổng lãi/lỗ |
Withdrawable | float64 | Có thể rút |
CashSSI | float64 | Tiền tại SSI |
ValidNonCashSSI | float64 | Tài sản phi tiền mặt hợp lệ tại SSI |
WithdrawableSSI | float64 | Tiền có thể rút tại SSI (trước 3.3.0 là CashWithdrawableSSI; tên cũ còn lại dưới dạng method deprecated) |
CashVSDC | float64 | Tiền tại VSDC |
ValidNonCashVSDC | float64 | Tài sản phi tiền mặt hợp lệ tại VSDC |
WithdrawableVSDC | float64 | Tiền có thể rút tại VSDC (trước 3.3.0 là CashWithdrawableVSDC; tên cũ còn lại dưới dạng method deprecated) |
EquityPosition
| Field | Kiểu | Mô tả |
|---|---|---|
AccountNo | string | Số tài khoản |
Symbol | string | Mã chứng khoán |
Quantity | int | Tổng khối lượng |
SellableQuantity | int | Khối lượng bán được |
CostPrice | float64 | Giá vốn |
BuyingQuantity | int | Khối lượng đang mua |
SellingQuantity | int | Khối lượng đang bán |
MortgageQuantity | int | Khối lượng cầm cố |
BlockQuantity | int | Khối lượng phong toả |
DividendQuantity | int | Khối lượng cổ tức |
BoughtQuantity | int | Khối lượng đã mua |
SoldQuantity | int | Khối lượng đã bán |
T1BuyQuantity | int | Khối lượng mua T+1 |
T2BuyQuantity | int | Khối lượng mua T+2 |
T1SellQuantity | int | Khối lượng bán T+1 |
T2SellQuantity | int | Khối lượng bán T+2 |
RestrictedQuantity | int | Khối lượng hạn chế |
DerivativePosition
| Field | Kiểu | Mô tả |
|---|---|---|
AccountNo | string | Số tài khoản |
Symbol | string | Mã hợp đồng |
Long / Short / Net | int | Vị thế Long / Short / Net |
BidAvgPrice / AskAvgPrice | float64 | Giá TB mua / bán |
FloatingPL / TradingPL | float64 | Lãi/lỗ |
TradePrice | float64 | Giá giao dịch |
Order
| Field | Kiểu | Mô tả |
|---|---|---|
AccountNo | string | Số tài khoản |
ClientRequestID | string | Client request ID |
OrderID | string | Order ID |
Symbol | string | Mã chứng khoán |
Side | trading.OrderSide | Mua/Bán |
OrderType | trading.OrderType | Loại lệnh |
Price / AvgPrice | float64 | Giá đặt / Giá khớp TB |
PriceText | string | Giá dạng chữ (ví dụ ATO, ATC) |
Quantity | int | Khối lượng đặt |
OSQuantity | *int | Khối lượng chờ. nil với lệnh từ sổ lệnh REST (server không gửi ở đó) |
FilledQuantity | int | Khối lượng khớp |
CancelQuantity | int | Khối lượng huỷ |
Status | trading.OrderStatus | Trạng thái lệnh |
InputTime / ModifyTime | string | Thời gian đặt / sửa, định dạng yyyy/MM/dd HH:mm:ss |
Message | string | Thông báo |
Response giao dịch
PlaceOrderResponse
OrderID, ClientRequestID, Status (trading.OrderStatus)
ModifyOrderResponse
ClientModifyID, OrderID, ClientRequestID, Status
CancelOrderResponse
ClientCancelID, OrderID, ClientRequestID, Status
MaxBuySellResponse
| Field | Kiểu | Mô tả |
|---|---|---|
AccountNo | string | Số tài khoản |
Symbol | string | Mã chứng khoán |
MaxBuyQuantity | int | Khối lượng mua tối đa |
MaxSellQuantity | int | Khối lượng bán tối đa |
MarginRatio | *string | Tỷ lệ margin. nil với tài khoản phái sinh |
PurchasingPower | *int | Sức mua. nil với tài khoản phái sinh. Method cũ PurchasePower() đã deprecated và trả về string |
Order options
PlaceOrder và các hàm Place*Order nhận opts ...trading.OrderOption; trading.WithClientRequestID(id) đặt idempotency key của riêng bạn (tối đa 20 ký tự). Các method đặt và huỷ FCO nhận opts ...trading.FCOOption; trading.WithOTPCode(code) truyền mã dùng một lần khi tài khoản yêu cầu (tuỳ chọn).
Batch Orders
Các kiểu dùng bởi PlaceBatchOrders / CancelBatchOrders và các method batch của Trading WebSocket. Method, hành vi và ví dụ: Batch Orders.
BatchPlaceOrderItem (một lệnh cần đặt)
Các field tương ứng với tham số của PlaceOrder.
| Field | Kiểu | Mô tả |
|---|---|---|
AccountNo | string | Số tài khoản (bắt buộc) |
Symbol | string | Mã chứng khoán (bắt buộc) |
Side | trading.OrderSide | trading.OrderSideBuy ("B") hoặc trading.OrderSideSell ("S") |
Quantity | int | Khối lượng, phải lớn hơn 0 |
Price | float64 | Giá (VND). Phải lớn hơn 0 với LO và PLO; các loại lệnh khác là lệnh giá thị trường |
OrderType | trading.OrderType | ATO, ATC, LO, MTL, MP, MOK, MAK, PLO |
ClientRequestID | string | Idempotency key của lệnh, tối đa 20 ký tự. Nếu để trống, SDK tự sinh |
BatchCancelOrderItem (một lệnh cần huỷ)
| Field | Kiểu | Mô tả |
|---|---|---|
AccountNo | string | Số tài khoản (bắt buộc) |
OrderID | string | Order ID do server cấp |
ClientRequestID | string | ClientRequestID bạn đã dùng khi đặt lệnh |
Mỗi item huỷ cần đúng một trong hai: OrderID hoặc ClientRequestID. Nếu có cả hai hoặc không có cái nào, SDK trả *ValidationError.
BatchOrderResponse
| Field | Kiểu | Mô tả |
|---|---|---|
BatchRequestID | string | ID của batch, đúng như server trả về |
Results | []BatchOrderResult | Một kết quả cho mỗi lệnh. Comment trong code SDK ghi "in request order"; điều này chưa được server xác nhận, nên hãy đối chiếu kết quả theo ClientRequestID / OrderID nếu cần chắc chắn |
Nếu server không gửi results, hoặc results không phải danh sách, Results là slice rỗng.
BatchOrderResult
| Field | Kiểu | Mô tả |
|---|---|---|
ClientRequestID | string | Idempotency key của lệnh |
OrderID | string | Order ID do server cấp |
Status | trading.OrderStatus | Trạng thái lệnh (giá trị lạ được giữ nguyên dạng chuỗi) |
Success | bool | true nếu lệnh này được chấp nhận |
ErrorCode | string | Mã lỗi chỉ của lệnh này (khi Success == false) |
ErrorMessage | string | Thông báo lỗi chỉ của lệnh này |
ClientCancelID | string | Cancel ID (clientCancelId) do server trả về, thường thấy trong kết quả của CancelBatchOrders |
BatchOrderRequest (body gửi đi)
Do SDK dựng, thường bạn không tự tạo. Gồm BatchRequestID (chuỗi ngẫu nhiên), BatchRequestTime (int64, epoch mili giây) và Orders. Body JSON là {"batchRequestId", "batchRequestTime", "orders": [...]} và được ký toàn bộ.
Lệnh điều kiện (FCO)
FCOPlaceResponse
Kết quả đặt lệnh điều kiện — FCOID string
FCOCancelResponse
Kết quả huỷ lệnh điều kiện — FCOID string
FCOListResponse
Danh sách lệnh điều kiện (phân trang).
| Field | Kiểu | Mô tả |
|---|---|---|
PageIndex | int | Trang hiện tại |
PageSize | int | Kích thước trang |
ItemsCount | int | Tổng số bản ghi |
PagesCount | int | Tổng số trang. Có thể bỏ sót trang cuối chưa đầy: hãy phân trang đến khi gặp trang rỗng, hoặc tính từ ItemsCount |
FCOList | []*FCOInfo | Danh sách lệnh FCO |
FCOInfo
Thông tin chi tiết một lệnh điều kiện.
| Field | Kiểu | Mô tả |
|---|---|---|
FCOID | string | Mã lệnh FCO |
ClientID | string | Username / Client ID |
AccountNo | string | Số tài khoản |
Quantity | int | Khối lượng đặt |
Price | string | Giá đặt |
PriceSlip | *float64 | Độ trượt giá |
Symbol | string | Mã chứng khoán |
Type | FCOType | Loại lệnh điều kiện |
FromDate | string | Ngày bắt đầu hiệu lực |
ToDate | string | Ngày kết thúc hiệu lực |
MatchedQuantity | int | Khối lượng đã khớp |
IsPlaceOrder | bool | Đã đẩy lệnh vào sổ hay chưa |
Status | FCOStatus | Trạng thái lệnh FCO |
Detail | string | Chi tiết trạng thái |
Params | *FCOParams | Tham số kích hoạt. nil khi server không gửi |
OrderType | OrderType | Loại lệnh con |
FCOParams
Tham số kích hoạt của lệnh điều kiện.
| Field | Kiểu | Mô tả |
|---|---|---|
StopPrice | *float64 | Giá dừng / giá kích hoạt |
Side | OrderSide | Chiều lệnh (Mua/Bán) |
ActivePrice | *float64 | Giá kích hoạt (Trailing Stop) |
TrailingAmount | *float64 | Khoảng bám sát (Trailing Amount) |
TPActivePrice | *float64 | Giá kích hoạt chốt lời (Take Profit) |
SLActivePrice | *float64 | Giá kích hoạt cắt lỗ (Stop Loss) |
TPPrice | string | Giá chốt lời |
SLPrice | string | Giá cắt lỗ |
TPSlip | *float64 | Trượt giá chốt lời |
SLSlip | *float64 | Trượt giá cắt lỗ |
Operator | FCOOperator | Toán tử so sánh kích hoạt (server có thể gửi số 0-4; xem ParseFCOOperator) |
FCOStatusHistoryItem
Trả về bởi GetFcoStatusHistory(fcoID) dưới dạng []FCOStatusHistoryItem. Lịch sử rỗng (HTTP 204) cho ra danh sách rỗng.
| Field | Kiểu | Mô tả |
|---|---|---|
State | string | Trạng thái |
Time | string | Thời điểm chuyển trạng thái |
Code | *string | Mã, nil nếu server không gửi |
Detail | string | Chi tiết |
FCOOrderBookResponse
Nhật ký khớp lệnh FCO (phân trang).
| Field | Kiểu | Mô tả |
|---|---|---|
PageIndex | int | Trang hiện tại |
PageSize | int | Kích thước trang |
ItemsCount | int | Tổng số bản ghi |
PagesCount | int | Tổng số trang |
OrderBook | []*FCOOrder | Danh sách nhật ký lệnh FCO |
FCOOrder
Nhật ký giao dịch / thực thi của lệnh FCO.
| Field | Kiểu | Mô tả |
|---|---|---|
FCOID | string | Mã lệnh FCO gốc |
AccountNo | string | Số tài khoản |
Quantity | int | Khối lượng |
Price | string | Giá đặt |
Symbol | string | Mã chứng khoán |
Side | OrderSide | Chiều lệnh |
OrderType | OrderType | Loại lệnh con |
IsMainOrder | bool | Là lệnh chính |
IsAttachedOrder | bool | Là lệnh kèm theo |
CreatedTime / UpdatedTime | string | Thời gian tạo / cập nhật |
UniqueID | string | ID duy nhất |
OrderID | string | Mã lệnh trên sàn |
MatchedQuantity | int | Khối lượng đã khớp |
OSQuantity | int | Khối lượng chờ khớp |
AvgPrice | float64 | Giá khớp trung bình |
Status | OrderStatus | Trạng thái lệnh con |
Detail | string | Chi tiết |
Type | FCOType | Loại lệnh điều kiện |
Message Streaming
Nhận qua SetOnData / SetOnTrading, hoặc qua các handler theo kiểu (SetOnOrder, SetOnIndexSummary, ...). Xem Streaming.
TradeMessage
Type, TradingTime, Symbol, Price, Quantity, Side (string, "U" khi server không gửi), TotalVolume, và các field con trỏ Open, High, Low, Avg (*float64, nil khi không gửi).
QuoteMessage
Type, TradingTime, Symbol, BidPrices, BidVolumes, AskPrices, AskVolumes
ForeignRoomMessage
Type, TradingTime, Symbol, TotalRoom, CurrentRoom, BuyQuantity, BuyValue, SellQuantity, SellValue
PutMessage
Type, TradingTime, Symbol, Price (float64), Quantity, TotalQuantity, TotalValue (int)
OddLotMessage
Type, TradingTime, Symbol, Price, Quantity, BidPrices, BidVolumes, AskPrices, AskVolumes
MarketStatusMessage
Market, Status, TradingDate
MarketDataMessage
Dữ liệu tham chiếu / trần / sàn từ topic market.<symbol> (SubscribeMarket, alias SubscribeMasterData).
Symbol, Board, TradingTime, và các field con trỏ Ceiling, Floor, RefPrice (*float64).
OrderStatusMessage
Sự kiện trạng thái lệnh (order.<account>, eventType orderEvent).
| Field | Kiểu |
|---|---|
Type, AccountNo, ClientRequestID, OrderID, Symbol | string / id có kiểu |
Side, OrderType, Status | có kiểu (trading.OrderSide, OrderType, OrderStatus) |
Price | float64 |
PriceText, AvgPriceText | string |
AvgPrice | float64 |
Quantity, OSQuantity, FilledQuantity, CancelQuantity | số |
InputTime, ModifiedTime, Message | string |
RejectReason, ErrorCode, ErrorMessage | string |
SystemRequestID, NotifyID, ConnectionID | string |
Chú ý đúng tên: OSQuantity (không phải OsQuantity) và ModifiedTime (không phải ModifyTime).
OrderMatchMessage
Sự kiện khớp lệnh (eventType orderMatchEvent; handler SetOnOrderMatch).
Type, NotifyID, ConnectionID, ClientRequestID, OrderID, Symbol, Side, AccountNo, MatchPrice (float64), MatchPriceText, MatchQty (int), MatchTime
PortfolioMessage
Cập nhật vị thế, chỉ cho tài khoản phái sinh (eventType clientPortfolioEvent; handler SetOnPortfolio).
| Field | Kiểu | Mô tả |
|---|---|---|
Type, AccountNo, Symbol, PositionType | string | Định danh |
LongQty, ShortQty, Net, BidAvgPrice, AskAvgPrice, TradePrice, MarketPrice, FloatingPL, TradingPL | *float64 | Giá trị vị thế, nil khi không gửi |
TotalAsset, CashBalance, StockValue | *float64 | Luôn là nil: server không bao giờ gửi. Đừng dựa vào chúng |
FCOOrderUpdateMessage
Cập nhật realtime trạng thái lệnh điều kiện FCO (nhận qua SetOnTrading hoặc SetOnOrder, khi EventType == "fcoEvent").
| Field | Kiểu | Mô tả |
|---|---|---|
FCOID | string | Mã lệnh FCO |
ProcessStatus | FCOStatus | Trạng thái xử lý lệnh FCO (INIT, WAIT, WC, TER, ...) |
MatchedQuantity | int | Khối lượng đã khớp |
IsPlaceOrder | bool | Đã đẩy lệnh vào sổ hay chưa |
Symbol | string | Mã chứng khoán |
Quantity | int | Khối lượng đặt |
Price | string | Giá đặt |
AccountNo | string | Số tài khoản |
UpdatedTime | string | Thời gian cập nhật |
Status | string | Mã trạng thái |
Message | string | Thông báo chi tiết |
Username | string | Username đặt lệnh |
EventType | string | Loại sự kiện ("fcoEvent") |
Type | trading.FCOType | Loại lệnh điều kiện (GTD, Stop, ...). Field tên là Type, không phải FCOType |
IntervalMessage
Nến cho trade.<symbol>@1m|@5m và trade.index.<code>@1m|@5m.
| Field | Kiểu | Mô tả |
|---|---|---|
Type | stream.DataType | trade |
IntervalTime | string | Thời điểm bắt đầu nến (key st) |
TradingTime | string | Thời gian giao dịch (key t) |
Symbol | string | Mã |
Open | float64 | Giá mở |
High | float64 | Giá cao |
Low | float64 | Giá thấp |
Close | float64 | Giá đóng |
Volume | int | Khối lượng |
IndexTickMessage
Tick của chính chỉ số (trade.index.<CODE>, cũng có hậu tố @tick). Xem index subscriptions.
Chưa xác minh. Server chỉ gửi key viết tắt; ý nghĩa từng field do SDK suy ra từ chữ viết tắt, chưa được tài liệu của server xác nhận. Nếu cần chắc chắn, hãy đọc
Raw(bản sao của object gốc).
| Field | Kiểu | Key nguồn | Ghi chú (suy ra) |
|---|---|---|---|
Type | stream.DataType | — | Luôn là trade |
Symbol | string | s | Mã chỉ số |
Board | string | b | Sàn |
Status | string | ss | Trạng thái |
TradingTime | string | t | Thời gian giao dịch |
Value | *float64 | v | Giá trị chỉ số |
Change | *float64 | c | Thay đổi |
ChangePercent | *float64 | cr | Thay đổi (%) |
Advances / Declines / NoChange | *float64 | adv / dec / nc | Số mã tăng / giảm / không đổi |
Ceilings / Floors | *float64 | ce / fl | Số mã trần / sàn |
TotalMatchValue / TotalMatchQuantity | *float64 | tmv / tmq | Tổng giá trị / khối lượng khớp |
TotalPutValue / TotalPutQuantity | *float64 | tvp / tqp | Tổng giá trị / khối lượng thoả thuận |
TotalQuantity / TotalValue | *float64 | tq / tv | Tổng khối lượng / giá trị |
Raw | map[string]interface{} | — | Object gốc server đã gửi |
IndexSummaryMessage
Tổng hợp chỉ số (indexsummary.<CODE>; handler SetOnIndexSummary).
| Field / method | Kiểu | Mô tả |
|---|---|---|
Index | string | Mã chỉ số, lấy từ topic, viết hoa |
Data | map[string]interface{} | Nội dung server gửi, giữ nguyên. Tài liệu công khai không liệt kê các field, nên SDK không đoán |
Get(keys ...string) | interface{} | Trả giá trị của key đầu tiên có trong Data, hoặc nil |
MarketFlagMessage
Cờ phiên (market.flag; handler SetOnMarketFlag).
| Field | Kiểu | Mô tả |
|---|---|---|
Board | string | HOSE, HNX, UPCOM hoặc DER (phái sinh), đúng như server gửi |
TradingTime | string | Thời gian |
Flag | string | Cờ phiên (ATO, LO, ATC...) |
HeartbeatMessage
Method, Channel, Status, Message
ConnectionEvent
Package transport. Truyền vào SetOnConnection.
| Field | Kiểu | Mô tả |
|---|---|---|
State | string | "connected", "reconnected", "disconnected" hoặc "failed" |
ReconnectCount | int | Số lần kết nối được thiết lập lại |
Err | error | Lý do, nếu có |
Model Trading WebSocket
Xem Trading WebSocket. Các lệnh đặt order, đặt và huỷ FCO dùng lại kiểu REST (PlaceOrderResponse, ModifyOrderResponse, CancelOrderResponse, FCOPlaceResponse, FCOCancelResponse, BatchPlaceOrderItem, BatchCancelOrderItem).
tradingws.Response
Trả về bởi các method batch, list và query.
| Field | Kiểu | Mô tả |
|---|---|---|
ID | string | Id của lệnh |
Method | string | Tên method, ví dụ query.orderBook |
Status | int | Status của frame |
Result | interface{} | Kết quả, thường là map[string]interface{} |
RateLimit | map[string]interface{} | Hạn mức server báo (remaining, resetMs, ...) |
ReceivedTime | interface{} | Giá trị key receivedTime của frame, nếu có |
tradingws.OrderBookQuery
| Field | Kiểu | Mô tả |
|---|---|---|
AccountNo | string | Số tài khoản |
FromDate / ToDate | string | Định dạng YYYY/MM/DD, ToDate không nhỏ hơn FromDate |
Symbol | string | Mã chứng khoán |
OrderStatus | trading.OrderStatus | Lọc theo trạng thái |
PageIndex | int | Trang, bắt đầu từ 1 |
PageSize | int | Kích thước trang |
Field rỗng hoặc bằng 0 sẽ bị bỏ khỏi request.
Event từ socket đến Client().SetOnEvent(...) dưới dạng frame map[string]interface{} có channel, topic và data (data.eventType: orderEvent, orderMatchEvent, clientPortfolioEvent).
Wrapper Types
AccountBalance
| Field | Kiểu | Mô tả |
|---|---|---|
Equity | *EquityAccountBalance | Số dư tài khoản cổ phiếu |
Derivative | *DerivativeAccountBalance | Số dư tài khoản phái sinh |
Position
| Field | Kiểu | Mô tả |
|---|---|---|
Equity | []EquityPosition | Danh sách vị thế cổ phiếu |
Derivative | *AllDerivativePosition | Tất cả vị thế phái sinh |
AllDerivativePosition
| Field | Kiểu | Mô tả |
|---|---|---|
OpenPositions | []DerivativePosition | Vị thế đang mở |
ClosedPositions | []DerivativePosition | Vị thế đã đóng |
AccountNo | string | Số tài khoản |
PPMMR
| Field | Kiểu | Mô tả |
|---|---|---|
Equity | *EquityPPMMR | PPMMR cổ phiếu |
Derivative | *DerivativePPMMR | PPMMR phái sinh |