Go

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ịCodeMô tả
OrderSideBuy"B"Mua
OrderSideSell"S"Bán

OrderType

Package: trading

Giá trịCodeMô 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ịCodeMô 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ịCodeMô 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ịCodeMô 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 ý. 1w và 1M có đị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, 1h và 1d.

AccountType

Package: account

Giá trịCodeMô 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ịCodeMô 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ịCodeMô 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ịCodeMô 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.

HelperPackageTrả về
OrderSideFromValuetradingOrderSide
OrderTypeFromValuetradingOrderType
OrderStatusFromValuetradingOrderStatus
FCOTypeFromValuetradingFCOType
FCOOperatorFromValuetradingFCOOperator
FCOStatusFromValuetradingFCOStatus
BoardFromValuemarketBoard
AccountTypeFromValueaccountAccountType

Stream enums

Package: stream

TypeGiá trị
StreamingMethodStreamingMethodSubscribe ("subscribe"), StreamingMethodUnsubscribe ("unsubscribe"), StreamingMethodPingPong ("ping_pong"), StreamingMethodListSubscription ("list_subscription")
StreamingChannelStreamingChannelData ("DATA"), StreamingChannelHeartbeat ("HEARTBEAT"), StreamingChannelTrading ("TRADING")
StreamingTypeStreamingTypeOrder ("orderEvent"), StreamingTypeOrderMatch ("orderMatchEvent"), StreamingTypePortfolio ("clientPortfolioEvent")
DataTopic (prefix)DataTopicQuote ("quote."), DataTopicTrade ("trade."), DataTopicOddLot ("oddlot."), DataTopicMarket ("market."), DataTopicRoom ("room."), DataTopicPut ("put."), DataTopicIndexSummary ("indexsummary.")
DataTypeDataTypeQuote, DataTypeTrade, DataTypeOddLot, DataTypeMarket, DataTypeRoom, DataTypePut, DataTypeIndexSummary (tên topic không có dấu chấm)
Topicstream.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ịCodeMô 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 / DefaultPage1000 / 1Page size và số trang mặc định của các lời gọi market data có phân trang
MaxBatchOrders20Giới hạn batch mặc định, xem Config.MaxBatchOrders
MaxClientRequestIDLength20ClientRequestID dài nhất
HTTPStatusConflict409Map sang DuplicateRequestError
TokenExpirySkewMs30000Token hết hạn trong khoảng này được coi là đã hết hạn
SmartOTPPendingStatus / SmartOTPPendingCode202 / 401114Smart OTP đang chờ duyệt
SmartOTPTerminalCodes401113, 401115, 401116Smart OTP bị từ chối / không tìm thấy / giao dịch khác
RefreshReauthCodes401101-401104, 401106-401108Refresh bị từ chối, cần OTP mới
RateLimitMaxRetries3Số lần retry request đọc bị rate limit
RateLimitDefaultWaitMs1000Lần chờ đầu (nhân đôi sau mỗi lần retry)
RateLimitMaxWaitMs30000Chờ lâu hơn mức này thì trả *RateLimitError
WSReconnectMaxDelayMs60000Trần của backoff reconnect stream
WSRateLimitBackoffMs30000Thời gian chờ tối thiểu sau khi gặp 429 lúc connect
WSTokenRefreshLeadMs60000Stream reconnect chủ động trước khi token hết hạn khoảng này
WSServerMaxConnections10Số socket tối đa mỗi client (vượt thì 429)
WSMaxFrameBytes4000Frame 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

PackageImportChứa
trading.../ssi-sdk-go/v3/tradingOrderSide, OrderType, OrderStatus, FCOType, FCOOperator, FCOStatus, các helper *FromValue, ParseFCOOperator
market.../ssi-sdk-go/v3/marketBoard, Timeframe, AllowedTimeframes, BoardFromValue
account.../ssi-sdk-go/v3/accountAccountType, AccountTypeFromValue
stream.../ssi-sdk-go/v3/streamStreamingMethod, StreamingChannel, StreamingType, DataTopic, DataType, Interval*
ssisdk (gốc).../ssi-sdk-go/v3Hằng số giao thức, ServerErrorCode

Trên trang này