Enums & Hằng số
Các kiểu enum và hằng số trong Go SDK
Enum được tổ chức theo package:
import (
"github.com/SSI-Securities-Inc/ssi-sdk-go/v3/account"
"github.com/SSI-Securities-Inc/ssi-sdk-go/v3/market"
"github.com/SSI-Securities-Inc/ssi-sdk-go/v3/stream"
"github.com/SSI-Securities-Inc/ssi-sdk-go/v3/trading"
)Giá trị lạ do server gửi được giữ nguyên dạng chuỗi thô; SDK không lỗi vì nó. Dùng các helper *FromValue bên dưới để kiểm tra một giá trị có thuộc tập đã biết hay không.
OrderSide
Package: trading
| Giá trị | Code | Mô tả |
|---|---|---|
OrderSideBuy | "B" | Mua |
OrderSideSell | "S" | Bán |
OrderType
Package: trading
| Giá trị | Code | Mô tả |
|---|---|---|
OrderTypeLO | "LO" | Lệnh giới hạn |
OrderTypeMTL | "MTL" | Market To Limit |
OrderTypeMP | "MP" | Lệnh thị trường |
OrderTypeATO | "ATO" | Lệnh mở cửa |
OrderTypeATC | "ATC" | Lệnh đóng cửa |
OrderTypeMOK | "MOK" | Match Or Kill |
OrderTypeMAK | "MAK" | Match And Kill |
OrderTypePLO | "PLO" | Lệnh sau giờ nghỉ trưa |
OrderStatus
Package: trading
| Giá trị | Code | Mô tả |
|---|---|---|
OrderStatusPending | "PD" | Chờ xử lý |
OrderStatusPendingApproval | "WA" | Chờ phê duyệt |
OrderStatusReady | "RS" | Sẵn sàng |
OrderStatusSent | "SD" | Đã gửi |
OrderStatusQueued | "QU" | Đã vào hàng đợi |
OrderStatusFilled | "FF" | Khớp toàn bộ |
OrderStatusPartialFilled | "PF" | Khớp một phần |
OrderStatusPartialCancelled | "FFPC" | Khớp một phần + huỷ phần còn lại |
OrderStatusPendingModify | "WM" | Chờ sửa |
OrderStatusPendingCancel | "WC" | Chờ huỷ |
OrderStatusCancelled | "CL" | Đã huỷ |
OrderStatusRejected | "RJ" | Bị từ chối |
OrderStatusExpired | "EX" | Hết hạn |
OrderStatusPreSession | "IAV" | Trước phiên |
OrderStatusSOI | "SOI" | Do các order engine báo (đặt tên theo code; SDK không gán thêm ý nghĩa) |
OrderStatusPAS | "PAS" | Do các order engine báo (đặt tên theo code) |
OrderStatusCPL | "CPL" | Do các order engine báo (đặt tên theo code) |
OrderStatusRequested | "RQ" | Đã nhận yêu cầu (FCO engine) |
OrderStatusError | "ERR" | Lỗi do engine báo |
Board
Package: market
| Giá trị | Code | Mô tả |
|---|---|---|
BoardHOSE | "HOSE" | Sàn HOSE |
BoardHNX | "HNX" | Sàn HNX |
BoardUPCOM | "UPCOM" | Sàn UPCOM |
BoardDerivatives | "DERIVATIVES" | Phái sinh. Chỉ xuất hiện ở stream và master data; các lời gọi market data REST chấp nhận HOSE / HNX / UPCOM |
market.BoardFromValue(raw) trả (Board, bool).
Timeframe
Package: market
| Giá trị | Code | Mô tả |
|---|---|---|
TimeframeMinute1 | "1m" | 1 phút |
TimeframeMinute3 | "3m" | 3 phút |
TimeframeMinute5 | "5m" | 5 phút |
TimeframeMinute15 | "15m" | 15 phút |
TimeframeHour1 | "1h" | 1 giờ |
TimeframeDay1 | "1d" | 1 ngày |
TimeframeWeek1 | "1w" | 1 tuần |
TimeframeMonth1 | "1M" | 1 tháng |
Lưu ý.
1wvà1Mcó định nghĩa trong SDK nhưng server từ chối (mã400210,ErrTimeframeNotSupported). Các timeframe server chấp nhận (market.AllowedTimeframes) là1m,3m,5m,15m,1hvà1d.
AccountType
Package: account
| Giá trị | Code | Mô tả |
|---|---|---|
AccountTypeEquity | "Cash" | Tài khoản tiền mặt (cổ phiếu) |
AccountTypeEquityMargin | "Margin" | Tài khoản margin |
AccountTypeDerivative | "Derivative" | Tài khoản phái sinh |
Account.AccountType là *account.AccountType: nil khi server không gửi, và giá trị lạ được giữ nguyên dạng chuỗi thô. account.AccountTypeFromValue(raw) trả (AccountType, bool).
FCOType
Loại lệnh điều kiện (Flexible Conditional Order).
Package: trading
| Giá trị | Code | Mô tả |
|---|---|---|
FCOTypeGTD | "gtd" | Lệnh có hiệu lực đến ngày (Good Till Date) |
FCOTypeStop | "stop" | Lệnh dừng thị trường (Stop Market) |
FCOTypeStopLimit | "stop_limit" | Lệnh dừng giới hạn (Stop Limit) |
FCOTypeTrailingStop | "trailing_stop" | Lệnh xu hướng (Trailing Stop Market) |
FCOTypeTrailingStopLimit | "trailing_stop_limit" | Lệnh xu hướng giới hạn (Trailing Stop Limit) |
FCOTypeOCO | "oco" | Lệnh huỷ lệnh còn lại (One Cancels the Other) |
FCOTypeBullBear | "bullbear" | Lệnh Bull Bear |
FCOOperator
Toán tử so sánh dùng để kích hoạt lệnh Stop / Stop Limit.
Package: trading
| Giá trị | Code | Mô tả |
|---|---|---|
FCOOperatorGreater | "greater" | Lớn hơn (>) |
FCOOperatorGreaterOrEqual | "greater_or_equal" | Lớn hơn hoặc bằng (>=) |
FCOOperatorLesser | "lesser" | Nhỏ hơn (<) |
FCOOperatorLesserOrEqual | "lesser_or_equal" | Nhỏ hơn hoặc bằng (<=) |
FCOOperatorEqual | "equal" | Bằng (=) |
Server có thể gửi toán tử dưới dạng số. trading.ParseFCOOperator(raw) nhận tên hoặc số 0-4 (0 greater_or_equal, 1 equal, 2 greater, 3 lesser, 4 lesser_or_equal) và trả về FCOOperator.
FCOStatus
Trạng thái xử lý của lệnh điều kiện.
Package: trading
| Giá trị | Code | Mô tả |
|---|---|---|
FCOStatusInit | "INIT" | Mới khởi tạo |
FCOStatusWait | "WAIT" | Chờ kích hoạt |
FCOStatusTri | "TRI" | Đã kích hoạt |
FCOStatusTrit | "TRIT" | Đã kích hoạt thành công |
FCOStatusTer | "TER" | Đã kết thúc |
FCOStatusFis | "FIS" | Hoàn tất |
FCOStatusWc | "WC" | Chờ huỷ |
FCOStatusExp | "EXP" | Hết hạn |
FCOStatusErr | "ERR" | Lỗi |
Parsing helpers
Mỗi helper trả (T, bool); so khớp không phân biệt hoa thường và giá trị lạ cho false.
| Helper | Package | Trả về |
|---|---|---|
OrderSideFromValue | trading | OrderSide |
OrderTypeFromValue | trading | OrderType |
OrderStatusFromValue | trading | OrderStatus |
FCOTypeFromValue | trading | FCOType |
FCOOperatorFromValue | trading | FCOOperator |
FCOStatusFromValue | trading | FCOStatus |
BoardFromValue | market | Board |
AccountTypeFromValue | account | AccountType |
Stream enums
Package: stream
| Type | Giá trị |
|---|---|
StreamingMethod | StreamingMethodSubscribe ("subscribe"), StreamingMethodUnsubscribe ("unsubscribe"), StreamingMethodPingPong ("ping_pong"), StreamingMethodListSubscription ("list_subscription") |
StreamingChannel | StreamingChannelData ("DATA"), StreamingChannelHeartbeat ("HEARTBEAT"), StreamingChannelTrading ("TRADING") |
StreamingType | StreamingTypeOrder ("orderEvent"), StreamingTypeOrderMatch ("orderMatchEvent"), StreamingTypePortfolio ("clientPortfolioEvent") |
DataTopic (prefix) | DataTopicQuote ("quote."), DataTopicTrade ("trade."), DataTopicOddLot ("oddlot."), DataTopicMarket ("market."), DataTopicRoom ("room."), DataTopicPut ("put."), DataTopicIndexSummary ("indexsummary.") |
DataType | DataTypeQuote, DataTypeTrade, DataTypeOddLot, DataTypeMarket, DataTypeRoom, DataTypePut, DataTypeIndexSummary (tên topic không có dấu chấm) |
| Topic | stream.TopicMarketFlag ("market.flag"), cũng có ssisdk.TopicMarketFlag |
Sự kiện FCO đến trên cùng kênh với sự kiện lệnh (order.<account>) với eventType là fcoEvent; không có hàm subscribe FCO riêng (xem Trading streaming).
Stream intervals
Kiểu market.Timeframe, chỉ hợp lệ với topic trade và trade.index (xem Index streaming):
| Giá trị | Code | Mô tả |
|---|---|---|
stream.IntervalTick | "tick" | Từng tick |
stream.IntervalMinute1 | "1m" | Nến 1 phút |
stream.IntervalMinute5 | "5m" | Nến 5 phút |
stream.StreamIntervalAll | "*" | Dùng nội bộ cho SubscribeIndex / SubscribeBoard (@*). Chưa xác nhận với server thật |
Interval khác cho *ValidationError.
Constants
Package: ssisdk (gốc). Mọi khoảng thời gian là số nguyên mili giây.
| Hằng số | Giá trị | Ý nghĩa |
|---|---|---|
DefaultSize / DefaultPage | 1000 / 1 | Page size và số trang mặc định của các lời gọi market data có phân trang |
MaxBatchOrders | 20 | Giới hạn batch mặc định, xem Config.MaxBatchOrders |
MaxClientRequestIDLength | 20 | ClientRequestID dài nhất |
HTTPStatusConflict | 409 | Map sang DuplicateRequestError |
TokenExpirySkewMs | 30000 | Token hết hạn trong khoảng này được coi là đã hết hạn |
SmartOTPPendingStatus / SmartOTPPendingCode | 202 / 401114 | Smart OTP đang chờ duyệt |
SmartOTPTerminalCodes | 401113, 401115, 401116 | Smart OTP bị từ chối / không tìm thấy / giao dịch khác |
RefreshReauthCodes | 401101-401104, 401106-401108 | Refresh bị từ chối, cần OTP mới |
RateLimitMaxRetries | 3 | Số lần retry request đọc bị rate limit |
RateLimitDefaultWaitMs | 1000 | Lần chờ đầu (nhân đôi sau mỗi lần retry) |
RateLimitMaxWaitMs | 30000 | Chờ lâu hơn mức này thì trả *RateLimitError |
WSReconnectMaxDelayMs | 60000 | Trần của backoff reconnect stream |
WSRateLimitBackoffMs | 30000 | Thời gian chờ tối thiểu sau khi gặp 429 lúc connect |
WSTokenRefreshLeadMs | 60000 | Stream reconnect chủ động trước khi token hết hạn khoảng này |
WSServerMaxConnections | 10 | Số socket tối đa mỗi client (vượt thì 429) |
WSMaxFrameBytes | 4000 | Frame request lớn nhất; SDK tự chia request dài (giới hạn server là 4096) |
TopicMarketFlag | "market.flag" | Topic session flag |
TradingWSPath | "/ws/v3/trading" | Đường dẫn của Trading WebSocket |
Route tổng hợp dùng nội bộ trong stream parser: @ack, @error, @list_subscription, @id.
Mã lỗi server là các hằng có kiểu ServerErrorCode; xem Xử lý lỗi.
Tổng hợp Package
| Package | Import | Chứa |
|---|---|---|
trading | .../ssi-sdk-go/v3/trading | OrderSide, OrderType, OrderStatus, FCOType, FCOOperator, FCOStatus, các helper *FromValue, ParseFCOOperator |
market | .../ssi-sdk-go/v3/market | Board, Timeframe, AllowedTimeframes, BoardFromValue |
account | .../ssi-sdk-go/v3/account | AccountType, AccountTypeFromValue |
stream | .../ssi-sdk-go/v3/stream | StreamingMethod, StreamingChannel, StreamingType, DataTopic, DataType, Interval* |
ssisdk (gốc) | .../ssi-sdk-go/v3 | Hằng số giao thức, ServerErrorCode |