IApiComposeCallback 继承 ISubscribeApiCallback,实现类必须实现下面全部签名。行情、账户和订阅回调传递签名中声明的模型对象;连接和心跳回调传递原始参数或不传参数。
C#
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 返回值可与 SubscribeEnd、CancelSubscribeEnd 中的 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心跳超时的连接标识
字段 C# 类型 说明 Accountstring账户 Currencystring币种 SegTypestring证券类别 AvailableFunds / ExcessLiquidity / NetLiquidation / EquityWithLoan / BuyingPower / CashBalance / GrossPositionValue / InitMarginReq / MaintMarginReqdouble可用资金、流动性、净清算值、融资权益、购买力、现金、持仓总值及保证金字段 Timestampulong时间戳
字段 C# 类型 说明 Account / Symbol / Expiry / Strike / Right / Identifier / Market / Currency / SegType / SecType / Namestring账户、合约、市场和标的文本字段;Expiry、Strike、Right 用于期权 Multiplieruint合约乘数 Positionlong总持仓 PositionScaleint持仓精度 AverageCost / LatestPrice / MarketValue / UnrealizedPnldouble成本、最新价、市值和未实现盈亏 Timestampulong时间戳 Saleablelong可选;A 股可卖数量,使用 HasSaleable 判断是否存在
字段 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>订单属性列表
字段 C# 类型 说明 Id / OrderIdlong成交 ID / 订单 ID Account / Symbol / Identifier / Action / Market / Currency / SegType / SecTypestring账户、合约和市场文本字段 Multiplieruint合约乘数 FilledPricedouble成交价 FilledQuantitylong成交数量 CreateTime / UpdateTime / TransactTime / Timestampulong创建、更新、成交和推送时间戳
字段 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可选;分钟数据,使用空值判断是否存在;其字段见下表
字段 C# 类型 说明 Pdouble分钟最新价 Adouble分钟均价 Tulong分钟时间戳 Vlong分钟成交量 O / H / Ldouble可选;分钟开盘价、最高价、最低价,使用对应 HasO、HasH、HasL 判断是否存在
字段 C# 类型 说明 Symbolstring标的代码 TypeSocketCommon.Types.QuoteType报价类型 Timestampulong推送时间戳 AskPrice / BidPricedouble最优卖价 / 买价 AskSize / BidSizelong最优卖量 / 买量 AskTimestamp / BidTimestampulong可选;最优卖 / 买时间戳,使用对应 Has... 属性判断
字段 C# 类型 说明 Symbol / QuoteLevelstring标的代码 / 行情等级 SecTypeSecType证券类型 Timestamplong推送时间戳 TicksList<Tick>逐笔列表 Ticks[].Sn / Ticks[].Volume / Ticks[].Timelong序号、成交量、成交时间 Ticks[].Pricedouble成交价 Ticks[].TickType / Cond / PartCode / PartNamestring方向、已解码条件、参与者代码和名称
字段 C# 类型 说明 Symbol / Sourcestring标的代码 / 数据源 Timestamplong推送时间戳 TicksRepeatedField<TickData.Types.Tick>完整逐笔列表 Ticks[].Sn / Timelong序号 / 成交时间 Ticks[].Pricefloat成交价 Ticks[].Volumeint成交量 Ticks[].Type / Cond / PartCodestring方向、原始条件代码和参与者代码
字段 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>期权交易所
字段 C# 类型 说明 Time / VolumelongK 线时间 / 成交量 Open / High / Low / Close / Avgfloat价格字段 Countint成交笔数 Symbolstring标的代码 Amountdouble成交额 ServerTimestampulong可选;服务端时间戳,使用 HasServerTimestamp 判断
字段 C# 类型 说明 Marketstring市场 Timestamplong推送时间戳 TopDataRepeatedField<StockTopData.Types.TopData>榜单列表 TopData[].TargetNamestring指标名称 TopData[].ItemRepeatedField<StockTopData.Types.StockItem>指标项 TopData[].Item[].Symbolstring标的代码 TopData[].Item[].LatestPricedouble最新价 TopData[].Item[].TargetValuedouble指标值
字段 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更新时间
字段 C# 类型 说明 Limit / Used / AskBidLimit / AskBidUsed / TradeTickLimit / TradeTickUsed / KlineLimit / KlineUsedint对应主题的订阅额度和已用数量 SubscribedSymbols / SubscribedAskBidSymbols / SubscribedTradeTickSymbols / SubscribedMarketQuote / SubscribedKlineSymbolsISet<string>已订阅的行情、深度、逐笔、全市场和 K 线主题
参数 C# 类型 说明 idint请求 ID;与命令返回的 uint 按相同 32 位位模式关联 subjectstringSDK 从响应 DataType 转换得到的主题名称 resultstring服务端结果 JSON;其结构未由 C# 模型定义,至少解析 code,仅 code == 0 表示成功
参数 C# 类型 说明 errorMsgstring错误消息 idint仅带 ID 重载;仅在带请求 ID 的错误回调中提供,可与命令返回的 uint 请求 ID 关联 errorCodeint仅带 ID 重载;同上