回调接口

IApiComposeCallback 继承 ISubscribeApiCallback,实现类必须实现下面全部签名。行情、账户和订阅回调传递签名中声明的模型对象;连接和心跳回调传递原始参数或不传参数。

using TigerOpenAPI.Push;
using TigerOpenAPI.Push.Model;
using TigerOpenAPI.Quote.Pb;

sealed class PushCallback : IApiComposeCallback
{
    public void OrderStatusChange(OrderStatusData data) { }
    public void OrderTransactionChange(OrderTransactionData data) { }
    public void PositionChange(PositionData data) { }
    public void AssetChange(AssetData data) { }
    public void TradeTickChange(TradeTick data) { }
    public void FullTickChange(TickData data) { }
    public void QuoteChange(QuoteBasicData data) { }
    public void QuoteAskBidChange(QuoteBBOData data) { }
    public void OptionChange(QuoteBasicData data) { }
    public void OptionAskBidChange(QuoteBBOData data) { }
    public void FutureChange(QuoteBasicData data) { }
    public void FutureAskBidChange(QuoteBBOData data) { }
    public void DepthQuoteChange(QuoteDepthData data) { }
    public void KlineChange(KlineData data) { }
    public void StockTopPush(StockTopData data) { }
    public void OptionTopPush(OptionTopData data) { }
    public void SubscribeEnd(int id, string subject, string result) { }
    public void CancelSubscribeEnd(int id, string subject, string result) { }
    public void GetSubscribedSymbolEnd(SubscribedSymbol subscribedSymbol) { }
    public void Error(string errorMsg) { }
    public void Error(int id, int errorCode, string errorMsg) { }
    public void ConnectionClosed() { }
    public void ConnectionKickout(int errorCode, string errorMsg) { }
    public void ConnectionAck() { }
    public void ConnectionAck(int serverSendInterval, int serverReceiveInterval) { }
    public void HearBeat(string heartBeatContent) { }
    public void ServerHeartBeatTimeOut(string channelId) { }
}

QuoteChange/OptionChange/FutureChange 接收 QuoteBasicData,买卖一档分别进入对应 *AskBidChange。逐笔在 UseFullTick=true 时进入 FullTickChange(TickData),否则进入 TradeTickChange(TradeTick)。回调线程上避免阻塞;将耗时处理投递到应用自己的队列。

每个回调直接接收其签名所列的具体数据对象,没有统一的外层对象。订阅和退订命令的 uint 返回值可与 SubscribeEndCancelSubscribeEnd 中的 id 关联;result 是 JSON 字符串,应读取其中的 code 字段,只有 code == 0 才表示业务成功。GetSubscribedSymbolEnd 只接收 SubscribedSymbol,不包含请求 ID,因此 GetSubscribedSymbols() 的返回值不能与该回调关联。

回调负载字段

以下表格列出回调对象的可用字段。标为“可选”的字段应先使用对应的 Has... 属性确认存在;未提供的其他值类型字段为其 CLR 默认值。

连接与心跳回调

回调参数类型说明
ConnectionClosed()-连接已关闭,无 payload
ConnectionKickout(int errorCode, string errorMsg)errorCode / errorMsgint / string同一 Tiger ID 的新连接替换当前连接时的错误码和说明
ConnectionAck()-收到连接确认,无 payload
ConnectionAck(int serverSendInterval, int serverReceiveInterval)serverSendInterval / serverReceiveIntervalint / intSDK 用于配置连接心跳的发送和接收间隔,单位均为毫秒
HearBeat(string heartBeatContent)heartBeatContentstring服务端心跳内容
ServerHeartBeatTimeOut(string channelId)channelIdstring心跳超时的连接标识

AssetChange(AssetData)

字段C# 类型说明
Accountstring账户
Currencystring币种
SegTypestring证券类别
AvailableFunds / ExcessLiquidity / NetLiquidation / EquityWithLoan / BuyingPower / CashBalance / GrossPositionValue / InitMarginReq / MaintMarginReqdouble可用资金、流动性、净清算值、融资权益、购买力、现金、持仓总值及保证金字段
Timestampulong时间戳

PositionChange(PositionData)

字段C# 类型说明
Account / Symbol / Expiry / Strike / Right / Identifier / Market / Currency / SegType / SecType / Namestring账户、合约、市场和标的文本字段;ExpiryStrikeRight 用于期权
Multiplieruint合约乘数
Positionlong总持仓
PositionScaleint持仓精度
AverageCost / LatestPrice / MarketValue / UnrealizedPnldouble成本、最新价、市值和未实现盈亏
Timestampulong时间戳
Saleablelong可选;A 股可卖数量,使用 HasSaleable 判断是否存在

OrderStatusChange(OrderStatusData)

字段C# 类型说明
Idlong订单 ID
Account / Symbol / Expiry / Strike / Right / Identifier / Action / Market / Currency / SegType / SecType / OrderType / Status / ReplaceStatus / CancelStatus / Name / Source / ErrorMsg / AttrDesc / UserMark / TimeInForcestring订单、合约、状态和文本字段
Multiplieruint合约乘数
IsLong / OutsideRth / CanModify / CanCancel / Liquidationbool多头、盘前盘后、可修改、可取消和强平标志
TotalQuantity / FilledQuantitylong委托数量和成交数量
TotalQuantityScale / FilledQuantityScaleint数量精度
AvgFillPrice / LimitPrice / StopPrice / RealizedPnl / TotalCashAmount / FilledCashAmount / Gstdouble价格、已实现盈亏、金额和 GST
CommissionAndFeefloat佣金和费用
OpenTime / Timestamp / UpdateTime / LatestTimeulong下单、推送、订单信息更新和订单状态更新时间戳
AttrListRepeatedField<string>订单属性列表

OrderTransactionChange(OrderTransactionData)

字段C# 类型说明
Id / OrderIdlong成交 ID / 订单 ID
Account / Symbol / Identifier / Action / Market / Currency / SegType / SecTypestring账户、合约和市场文本字段
Multiplieruint合约乘数
FilledPricedouble成交价
FilledQuantitylong成交数量
CreateTime / UpdateTime / TransactTime / Timestampulong创建、更新、成交和推送时间戳

QuoteChange / OptionChange / FutureChange (QuoteBasicData)

字段C# 类型说明
Symbolstring标的代码
TypeSocketCommon.Types.QuoteType报价类型
Timestampulong推送时间戳
ServerTimestampulong可选;服务端时间戳,使用 HasServerTimestamp 判断
AvgPrice / LatestPrice / PreClose / Amount / Open / High / Lowdouble可选;基础行情价格和成交额字段
LatestPriceTimestampulong可选;最新价时间戳
LatestTime / HourTradingTag / MarketStatusstring可选;时间、盘前盘后标志和市场状态
Volumelong可选;成交量
Identifierstring可选;期权标识
OpenIntlong可选;期权未平仓量
TradeTimeulong可选;期货最新成交时间
PreSettlementdouble可选;期货前结算价
MinTickfloat可选;期货最小变动价位
MiQuoteData.Types.Minute可选;分钟数据,使用空值判断是否存在;其字段见下表

Mi (QuoteData.Types.Minute)

字段C# 类型说明
Pdouble分钟最新价
Adouble分钟均价
Tulong分钟时间戳
Vlong分钟成交量
O / H / Ldouble可选;分钟开盘价、最高价、最低价,使用对应 HasOHasHHasL 判断是否存在

QuoteAskBidChange / OptionAskBidChange / FutureAskBidChange (QuoteBBOData)

字段C# 类型说明
Symbolstring标的代码
TypeSocketCommon.Types.QuoteType报价类型
Timestampulong推送时间戳
AskPrice / BidPricedouble最优卖价 / 买价
AskSize / BidSizelong最优卖量 / 买量
AskTimestamp / BidTimestampulong可选;最优卖 / 买时间戳,使用对应 Has... 属性判断

TradeTickChange(TradeTick)

字段C# 类型说明
Symbol / QuoteLevelstring标的代码 / 行情等级
SecTypeSecType证券类型
Timestamplong推送时间戳
TicksList<Tick>逐笔列表
Ticks[].Sn / Ticks[].Volume / Ticks[].Timelong序号、成交量、成交时间
Ticks[].Pricedouble成交价
Ticks[].TickType / Cond / PartCode / PartNamestring方向、已解码条件、参与者代码和名称

FullTickChange(TickData)

字段C# 类型说明
Symbol / Sourcestring标的代码 / 数据源
Timestamplong推送时间戳
TicksRepeatedField<TickData.Types.Tick>完整逐笔列表
Ticks[].Sn / Timelong序号 / 成交时间
Ticks[].Pricefloat成交价
Ticks[].Volumeint成交量
Ticks[].Type / Cond / PartCodestring方向、原始条件代码和参与者代码

DepthQuoteChange(QuoteDepthData)

字段C# 类型说明
Symbolstring标的代码
Timestampulong推送时间戳
Ask / BidQuoteDepthData.Types.OrderBook卖 / 买盘
Ask.Price / Bid.PriceRepeatedField<double>各档价格
Ask.Volume / Bid.Volume / Ask.Time / Bid.TimeRepeatedField<long>各档数量和期权交易所时间
Ask.OrderCount / Bid.OrderCountRepeatedField<uint>各档订单数
Ask.Exchange / Bid.ExchangeRepeatedField<string>期权交易所

KlineChange(KlineData)

字段C# 类型说明
Time / VolumelongK 线时间 / 成交量
Open / High / Low / Close / Avgfloat价格字段
Countint成交笔数
Symbolstring标的代码
Amountdouble成交额
ServerTimestampulong可选;服务端时间戳,使用 HasServerTimestamp 判断

StockTopPush(StockTopData)

字段C# 类型说明
Marketstring市场
Timestamplong推送时间戳
TopDataRepeatedField<StockTopData.Types.TopData>榜单列表
TopData[].TargetNamestring指标名称
TopData[].ItemRepeatedField<StockTopData.Types.StockItem>指标项
TopData[].Item[].Symbolstring标的代码
TopData[].Item[].LatestPricedouble最新价
TopData[].Item[].TargetValuedouble指标值

OptionTopPush(OptionTopData)

字段C# 类型说明
Marketstring市场
Timestamplong推送时间戳
TopDataRepeatedField<OptionTopData.Types.TopData>榜单列表
TopData[].TargetNamestring指标名称
TopData[].BigOrderRepeatedField<OptionTopData.Types.BigOrder>大单列表
TopData[].ItemRepeatedField<OptionTopData.Types.OptionItem>指标项
TopData[].BigOrder[].Symbol / Expiry / Strike / Right / Dirstring大单合约及方向
TopData[].BigOrder[].Volumedouble大单数量
TopData[].BigOrder[].Pricedouble大单价格
TopData[].BigOrder[].Amountdouble大单金额
TopData[].BigOrder[].TradeTimelong大单成交时间
TopData[].Item[].Symbol / Expiry / Strike / Rightstring期权合约
TopData[].Item[].TotalAmountdouble汇总金额
TopData[].Item[].TotalVolumedouble汇总成交量
TopData[].Item[].TotalOpenIntdouble汇总未平仓量
TopData[].Item[].VolumeToOpenIntdouble成交量与未平仓量之比
TopData[].Item[].LatestPricedouble最新价
TopData[].Item[].UpdateTimelong更新时间

GetSubscribedSymbolEnd(SubscribedSymbol)

字段C# 类型说明
Limit / Used / AskBidLimit / AskBidUsed / TradeTickLimit / TradeTickUsed / KlineLimit / KlineUsedint对应主题的订阅额度和已用数量
SubscribedSymbols / SubscribedAskBidSymbols / SubscribedTradeTickSymbols / SubscribedMarketQuote / SubscribedKlineSymbolsISet<string>已订阅的行情、深度、逐笔、全市场和 K 线主题

SubscribeEnd(int id, string subject, string result) / CancelSubscribeEnd(int id, string subject, string result)

参数C# 类型说明
idint请求 ID;与命令返回的 uint 按相同 32 位位模式关联
subjectstringSDK 从响应 DataType 转换得到的主题名称
resultstring服务端结果 JSON;其结构未由 C# 模型定义,至少解析 code,仅 code == 0 表示成功

Error(string errorMsg) / Error(int id, int errorCode, string errorMsg)

参数C# 类型说明
errorMsgstring错误消息
idint仅带 ID 重载;仅在带请求 ID 的错误回调中提供,可与命令返回的 uint 请求 ID 关联
errorCodeint仅带 ID 重载;同上

Did this page help you?