行情订阅

订阅股票行情

说明

订阅股票实时行情推送。行情数据通过回调接收,包含基本行情(QuoteBasicData)和最优买卖报价(QuoteBBOData)两种类型。

参数

参数类型说明
symbols&str股票代码,逗号分隔,如 "AAPL,TSLA,00700"

示例

// 订阅股票行情
push.subscribe(&SubjectType::Quote, Some("AAPL,TSLA,00700"), None, None);

对应回调

  • on_quote(QuoteBasicData) — 基本行情
  • on_quote_bbo(QuoteBBOData) — 最优买卖报价

回调数据字段

QuoteBasicData:

字段类型说明
symbolstring股票代码
typestring数据类型:BASIC
timestampstring数据时间戳(毫秒)
serverTimestampstring服务器推送时间戳
avgPricedouble均价
latestPricedouble最新价
latestPriceTimestampstring最新价时间戳
latestTimestring最新成交时间(可读格式)
preClosedouble前收价
volumestring成交量
amountdouble成交额
opendouble开盘价
highdouble最高价
lowdouble最低价
marketStatusstring市场状态,如 Trading
hourTradingTagstring盘前盘后标记,如 PreMarket(仅美股非盘中)
miobject分钟 K 线快照
mi.pdouble分钟收盘价
mi.adouble分钟均价
mi.tstring分钟时间戳
mi.vstring分钟成交量
mi.odouble分钟开盘价
mi.hdouble分钟最高价
mi.ldouble分钟最低价

QuoteBBOData:

字段类型说明
symbolstring股票代码
typestring数据类型:BBO
timestampstring数据时间戳(毫秒)
askPricedouble卖一价
askSizestring卖一量
askTimestampstring卖一报价时间戳
bidPricedouble买一价
bidSizestring买一量
bidTimestampstring买一报价时间戳

回调数据示例

基本行情(BASIC):

{
    "symbol": "AAPL",
    "type": "BASIC",
    "timestamp": "1684766012120",
    "serverTimestamp": "1684766012129",
    "avgPrice": 174.1721,
    "latestPrice": 174.175,
    "latestPriceTimestamp": "1684766011918",
    "latestTime": "05-22 10:33:31 EDT",
    "preClose": 175.16,
    "volume": "12314802",
    "amount": 2144365591.41,
    "open": 173.98,
    "high": 174.71,
    "low": 173.45,
    "marketStatus": "Trading",
    "mi": {
        "p": 174.175,
        "a": 174.1721,
        "t": "1684765980000",
        "v": "57641",
        "o": 174.21,
        "h": 174.22,
        "l": 174.14
    }
}

最优报价(BBO):

{
    "symbol": "AAPL",
    "type": "BBO",
    "timestamp": "1676992715509",
    "askPrice": 149.96,
    "askSize": "200",
    "askTimestamp": "1676992715367",
    "bidPrice": 149.94,
    "bidSize": "700",
    "bidTimestamp": "1676992715367"
}

订阅期权行情

说明

订阅期权实时行情推送(支持美国和香港市场期权)。回调数据包含基本行情和最优买卖报价两种类型。

参数

参数类型说明
symbols&str期权代码,逗号分隔。支持两种格式:"AAPL 20230317 150.0 CALL" 或 identifier 格式 "SPY 190508C00290000"

示例

// 订阅期权行情
push.subscribe(&SubjectType::Option, Some("AAPL 20230317 150.0 CALL"), None, None);

对应回调

  • on_option(QuoteBasicData) — 期权基本行情
  • on_option_bbo(QuoteBBOData) — 期权最优买卖报价

回调数据字段

QuoteBasicData(期权):

字段类型说明
symbolstring期权代码
typestring数据类型:BASIC
timestampstring数据时间戳(毫秒)
latestPricedouble最新价
latestPriceTimestampstring最新价时间戳
preClosedouble前收价
volumestring成交量
amountdouble成交额
opendouble开盘价
highdouble最高价
lowdouble最低价
identifierstring期权标准代码(如 AAPL 230317C00150000
openIntstring未平仓量

QuoteBBOData(期权):

字段类型说明
symbolstring期权代码
typestring数据类型:BBO
timestampstring数据时间戳(毫秒)
askPricedouble卖一价
askSizestring卖一量
askTimestampstring卖一报价时间戳
bidPricedouble买一价
bidSizestring买一量
bidTimestampstring买一报价时间戳

回调数据示例

期权基本行情:

{
    "symbol": "AAPL 20230317 150.0 CALL",
    "type": "BASIC",
    "timestamp": "1676994444927",
    "latestPrice": 4.83,
    "latestPriceTimestamp": "1676994444927",
    "preClose": 6.21,
    "volume": "3181",
    "amount": 939117.01,
    "open": 4.85,
    "high": 5.6,
    "low": 4.64,
    "identifier": "AAPL  230317C00150000",
    "openInt": "82677"
}

期权盘口报价:

{
    "symbol": "AAPL 20230317 150.0 CALL",
    "type": "BBO",
    "timestamp": "1676994393156",
    "askPrice": 4.85,
    "askSize": "11",
    "askTimestamp": "1676994393156",
    "bidPrice": 4.8,
    "bidSize": "992",
    "bidTimestamp": "1676994390931"
}

订阅期货行情

说明

订阅期货实时行情推送。回调数据包含基本行情和最优买卖报价两种类型。

参数

参数类型说明
symbols&str期货代码,逗号分隔,如 "ESmain,ES2609"

示例

// 订阅期货行情
push.subscribe(&SubjectType::Future, Some("ESmain,ES2609"), None, None);

对应回调

  • on_future(QuoteBasicData) — 期货基本行情
  • on_future_bbo(QuoteBBOData) — 期货最优买卖报价

回调数据字段

QuoteBasicData(期货):

字段类型说明
symbolstring期货代码
typestring数据类型:BASIC
timestampstring数据时间戳(毫秒)
avgPricedouble均价
latestPricedouble最新价
latestPriceTimestampstring最新价时间戳
latestTimestring最新成交时间
preClosedouble前收价
volumestring成交量
opendouble开盘价
highdouble最高价
lowdouble最低价
marketStatusstring市场状态
tradeTimestring交易时间戳
preSettlementdouble前结算价
minTickdouble最小变动单位
miobject分钟 K 线快照(字段同股票)

QuoteBBOData(期货):字段同股票 BBO 数据。

回调数据示例

期货基本行情:

{
    "symbol": "ESmain",
    "type": "BASIC",
    "timestamp": "1684766824130",
    "avgPrice": 4206.476,
    "latestPrice": 4202.5,
    "latestPriceTimestamp": "1684766824000",
    "latestTime": "05-22 09:47:04 -0500",
    "preClose": 4204.75,
    "volume": "557570",
    "open": 4189,
    "high": 4221.75,
    "low": 4186.5,
    "marketStatus": "Trading",
    "tradeTime": "1684766824000",
    "preSettlement": 4204.75,
    "minTick": 0.25,
    "mi": {
        "p": 4202.25,
        "a": 4206.476,
        "t": "1684766820000",
        "v": "96",
        "o": 4202.25,
        "h": 4202.5,
        "l": 4202.0
    }
}

期货盘口报价:

{
    "symbol": "ESmain",
    "type": "BBO",
    "timestamp": "1684766824130",
    "askPrice": 4202.75,
    "askSize": "70",
    "askTimestamp": "1684766824129",
    "bidPrice": 4202.5,
    "bidSize": "2",
    "bidTimestamp": "1684766824130"
}

订阅数字货币行情

说明

订阅数字货币实时行情推送。回调数据包含基本行情和最优买卖报价两种类型。

参数

参数类型说明
symbols&[&str]数字货币代码数组,如 &["BTC.USD", "ETH.USD"]

示例

// 订阅数字货币行情
push.subscribe_cc(&["BTC.USD", "ETH.USD"]);

对应回调

  • on_quote(QuoteBasicData) — 数字货币基本行情
  • on_quote_bbo(QuoteBBOData) — 数字货币最优买卖报价

回调数据字段

QuoteBasicData(数字货币):

字段类型说明
symbolstring数字货币代码,如 ETH.USD
typestring数据类型:BASIC
timestampstring数据时间戳(毫秒)
serverTimestampstring服务器推送时间戳
latestPricedouble最新价
latestPriceTimestampstring最新价时间戳
latestTimestring最新成交时间
preClosedouble前收价
volumeDecimaldouble成交量(小数精度)
amountdouble成交额
opendouble开盘价
highdouble最高价
lowdouble最低价
marketStatusstring市场状态,如 TRADING

QuoteBBOData(数字货币):

字段类型说明
symbolstring数字货币代码
typestring数据类型:BBO
timestampstring数据时间戳(毫秒)
askPricedouble卖一价
askTimestampstring卖一报价时间戳
bidPricedouble买一价
bidSizestring买一量
bidTimestampstring买一报价时间戳

回调数据示例

数字货币基本行情:

{
    "symbol": "ETH.USD",
    "type": "BASIC",
    "timestamp": "1770041127619",
    "serverTimestamp": "1770041127816",
    "latestPrice": 2322.97,
    "latestPriceTimestamp": "1770041127619",
    "latestTime": "02-02 22:05:27 HKT",
    "preClose": 2313.05,
    "volumeDecimal": 27711.5,
    "amount": 62465538.27,
    "open": 2314.18,
    "high": 2374.87,
    "low": 2156.8,
    "marketStatus": "TRADING"
}

数字货币盘口报价:

{
    "symbol": "ETH.USD",
    "type": "BBO",
    "timestamp": "1770041127619",
    "askPrice": 2322.97,
    "askTimestamp": "1770041127605",
    "bidPrice": 2322.95,
    "bidSize": "1",
    "bidTimestamp": "1770041127605"
}

订阅深度行情

说明

订阅多档深度行情,支持股票(美股/港股)、期权(美股/港股)和期货。美股深度行情推送频率为 300ms,港股深度行情推送频率为 2s,返回最高 40 档的买卖盘挂单数据(港股只有 10 档)。

参数

参数类型说明
symbols&str股票、期权、期货代码,逗号分隔,如 "AAPL,ESmain"

示例

// 订阅深度行情
push.subscribe(&SubjectType::Depth, Some("AAPL,00700"), None, None);

对应回调

  • on_depth(QuoteDepthData) — 深度盘口数据

回调数据字段

QuoteDepthData:

字段类型说明
symbolstring标的代码
timestampstring深度数据时间戳
askobject卖盘数据
ask.pricedouble[]各档卖价
ask.volumestring[]各档卖量
ask.orderCountint[]各档订单数(仅港股)
bidobject买盘数据
bid.pricedouble[]各档买价
bid.volumestring[]各档买量
bid.orderCountint[]各档订单数(仅港股)

回调数据示例

美股深度行情:

{
    "symbol": "AAPL",
    "timestamp": "1676993368405",
    "ask": {
        "price": [149.69, 149.70, 149.71, 149.72, 149.73],
        "volume": ["100", "200", "185", "100", "100"]
    },
    "bid": {
        "price": [149.68, 149.67, 149.66, 149.65, 149.64],
        "volume": ["84", "100", "100", "200", "100"]
    }
}

港股深度行情(含订单数):

{
    "symbol": "00700",
    "timestamp": "1670465696884",
    "ask": {
        "price": [311.4, 311.6, 311.8, 312.0, 312.2],
        "volume": ["15600", "5700", "16600", "33800", "61100"],
        "orderCount": [16, 13, 19, 79, 39]
    },
    "bid": {
        "price": [311.2, 311.0, 310.8, 310.6, 310.4],
        "volume": ["2300", "8300", "18000", "8800", "7700"],
        "orderCount": [10, 15, 18, 9, 6]
    }
}

订阅逐笔成交

说明

订阅股票/期货的逐笔成交数据。逐笔推送间隔为 200ms,采用快照方式推送,每次推送最新的 50 条逐笔记录。支持美国和香港市场股票、期货标的订阅。

参数

参数类型说明
symbols&str股票、期货代码,逗号分隔,如 "AAPL,00700,ESmain"

示例

// 订阅逐笔成交
push.subscribe(&SubjectType::TradeTick, Some("AAPL,00700"), None, None);

对应回调

  • on_tick(TradeTick) — 逐笔成交数据

回调数据字段

TradeTick:

字段类型说明
symbolstring标的代码
secTypestring证券类型:STK / FUT
quoteLevelstring行情权限级别(如 usQuoteBasichkStockQuoteLv2
timestamplong数据时间戳
ticksTick[]逐笔成交数据集合

Tick:

字段类型说明
snlong逐笔序号
volumelong成交量
tickTypestring* 中性,+ 主动买入,- 主动卖出(期货无此字段)
pricedouble成交价
timelong交易时间戳
condstring成交条件(如 US_REGULAR_SALEHK_AUTOMATCH_NORMAL
partCodestring交易所代码(仅美股股票)

回调数据示例

美股逐笔成交:

{
    "symbol": "AAPL",
    "secType": "STK",
    "quoteLevel": "usQuoteBasic",
    "timestamp": 1676993925700,
    "ticks": [
        {
            "sn": 116202,
            "volume": 50,
            "tickType": "*",
            "price": 149.665,
            "time": 1676993924289,
            "cond": "US_REGULAR_SALE"
        },
        {
            "sn": 116203,
            "volume": 1,
            "tickType": "*",
            "price": 149.68,
            "time": 1676993924459,
            "cond": "US_REGULAR_SALE"
        }
    ]
}

港股逐笔成交:

{
    "symbol": "00700",
    "secType": "STK",
    "quoteLevel": "hkStockQuoteLv2",
    "timestamp": 1669345639970,
    "ticks": [
        {
            "sn": 35115,
            "volume": 300,
            "tickType": "+",
            "price": 269.2,
            "time": 1669345639496,
            "cond": "HK_AUTOMATCH_NORMAL"
        },
        {
            "sn": 35116,
            "volume": 200,
            "tickType": "+",
            "price": 269.2,
            "time": 1669345639610,
            "cond": "HK_AUTOMATCH_NORMAL"
        }
    ]
}

期货逐笔成交:

{
    "symbol": "HSImain",
    "secType": "FUT",
    "timestamp": 1669345640575,
    "ticks": [
        {
            "sn": 261560,
            "volume": 1,
            "price": 17465.0,
            "time": 1669345639000
        },
        {
            "sn": 261561,
            "volume": 1,
            "price": 17465.0,
            "time": 1669345639000
        }
    ]
}

订阅分钟 K 线

说明

订阅股票的分钟 K 线数据。支持美国和香港市场股票。

参数

参数类型说明
symbols&str股票代码,逗号分隔,如 "AAPL,00700"

示例

// 订阅分钟K线
push.subscribe(&SubjectType::Kline, Some("AAPL,00700"), None, None);

对应回调

  • on_kline(KlineData) — 分钟 K 线数据

回调数据字段

KlineData:

字段类型说明
symbolstring股票代码
timestring分钟时间戳
openfloat开盘价
highfloat最高价
lowfloat最低价
closefloat收盘价
avgfloat均价
volumestring成交量
countint成交笔数
amountdouble成交金额
serverTimestampstring服务器推送时间戳

回调数据示例

{
    "symbol": "AAPL",
    "time": "1712584560000",
    "open": 168.9779,
    "high": 169.0015,
    "low": 168.9752,
    "close": 169.0,
    "avg": 168.778,
    "volume": "3664",
    "count": 114,
    "amount": 617820.6508,
    "serverTimestamp": "1712584569746"
}

订阅股票榜单

说明

订阅股票的行情榜单数据。非交易时间不推送,推送间隔为 30s,每次推送订阅指标 Top30 的标的数据。支持美国和香港市场。

盘中数据榜单有全部指标,美股盘前盘后只有涨幅(changeRate)和 5 分钟涨幅(changeRate5Min)两个指标。

参数

参数类型说明
market&str市场代码,如 "US""HK"

示例

// 订阅美股股票榜单
push.subscribe_market("US");
// 或使用通用方法
push.subscribe(&SubjectType::StockTop, None, None, Some("US"));

对应回调

  • on_stock_top(StockTopData) — 股票榜单数据

回调数据字段

StockTopData:

字段类型说明
marketstring市场:US / HK
timestampstring时间戳
topDataTopData[]各指标榜单数据列表

TopData:

字段类型说明
targetNamestring指标名:changeRate(涨幅)、changeRate5Min(5 分钟涨幅)、turnoverRate(换手率)、amount(成交额)、volume(成交量)、amplitude(振幅)
itemStockItem[]该指标维度下的榜单数据列表

StockItem:

字段类型说明
symbolstring标的代码
latestPricedouble最新价
targetValuedouble对应指标值

回调数据示例

{
    "market": "US",
    "timestamp": "1687271010482",
    "topData": [
        {
            "targetName": "changeRate",
            "item": [
                {"symbol": "ICAD", "latestPrice": 1.63, "targetValue": 0.393162},
                {"symbol": "DICE", "latestPrice": 46.54, "targetValue": 0.374889},
                {"symbol": "VCIG", "latestPrice": 3.88, "targetValue": 0.371025}
            ]
        },
        {
            "targetName": "amount",
            "item": [
                {"symbol": "TSLA", "latestPrice": 263.21, "targetValue": 10629393179.8},
                {"symbol": "SPY", "latestPrice": 435.64, "targetValue": 5839415251.67},
                {"symbol": "NVDA", "latestPrice": 428.38, "targetValue": 5123997584.1}
            ]
        },
        {
            "targetName": "volume",
            "item": [
                {"symbol": "TSLA", "latestPrice": 263.21, "targetValue": 40190416},
                {"symbol": "NKLA", "latestPrice": 1.26, "targetValue": 33326008},
                {"symbol": "SQQQ", "latestPrice": 19.93, "targetValue": 31339556}
            ]
        }
    ]
}

订阅期权榜单

说明

订阅期权的行情榜单数据。非交易时间不推送,推送间隔为 30s,每次推送订阅指标 Top50 的标的数据。支持美国市场期权指标的订阅。

其中异动大单为单笔成交量大于 1000,按成交时间倒排序的数据;其他指标数据为交易日累计指标值的倒序数据。

参数

参数类型说明
market&str市场代码,如 "US"

示例

// 订阅美股期权榜单
push.subscribe(&SubjectType::OptionTop, None, None, Some("US"));

对应回调

  • on_option_top(OptionTopData) — 期权榜单数据

回调数据字段

OptionTopData:

字段类型说明
marketstring市场:US
timestampstring时间戳
topDataTopData[]各指标榜单数据列表

TopData:

字段类型说明
targetNamestring指标名:bigOrder(异动大单)、volume(成交量)、amount(成交额)、openInt(未平仓量)
bigOrderBigOrder[]异动大单指标数据列表(仅 bigOrder 指标)
itemOptionItem[]该指标维度下的榜单数据列表

BigOrder:

字段类型说明
symbolstring股票/ETF 标的
expirystring到期日,格式:yyyyMMdd
strikestring行权价
rightstringCALL / PUT
dirstring买卖方向:Buy / Sell / NONE
volumedouble成交量
pricedouble成交价
amountdouble成交额
tradeTimelong成交时间戳

OptionItem:

字段类型说明
symbolstring股票/ETF 标的
expirystring到期日,格式:yyyyMMdd
strikestring行权价
rightstringCALL / PUT
totalAmountdouble成交额
totalVolumedouble成交量
totalOpenIntdouble未平仓量
volumeToOpenIntdouble成交量/未平仓量
latestPricedouble最新价
updateTimestring指标数据更新时间戳

回调数据示例

{
    "market": "US",
    "timestamp": "1687277160445",
    "topData": [
        {
            "targetName": "volume",
            "item": [
                {
                    "symbol": "SPY",
                    "expiry": "20230620",
                    "strike": "435.0",
                    "right": "PUT",
                    "totalAmount": 5394115,
                    "totalVolume": 212478,
                    "totalOpenInt": 16377,
                    "volumeToOpenInt": 0.012467,
                    "latestPrice": 0.25,
                    "updateTime": "1687277254390"
                },
                {
                    "symbol": "SPY",
                    "expiry": "20230620",
                    "strike": "436.0",
                    "right": "PUT",
                    "totalAmount": 7754077,
                    "totalVolume": 194423,
                    "totalOpenInt": 13403,
                    "volumeToOpenInt": 0.011408,
                    "latestPrice": 0.58,
                    "updateTime": "1687277213603"
                }
            ]
        },
        {
            "targetName": "bigOrder",
            "bigOrder": [
                {
                    "symbol": "AMC",
                    "expiry": "20230818",
                    "strike": "10.0",
                    "right": "PUT",
                    "dir": "Buy",
                    "volume": 1000,
                    "price": 6.94,
                    "amount": 694000,
                    "tradeTime": 1687276860753
                },
                {
                    "symbol": "AMD",
                    "expiry": "20230818",
                    "strike": "140.0",
                    "right": "CALL",
                    "dir": "Buy",
                    "volume": 1700,
                    "price": 3.25,
                    "amount": 552500,
                    "tradeTime": 1687276467421
                }
            ]
        }
    ]
}

查询已订阅标的

说明

查询本地已订阅的标的信息,返回主题到标的代码列表的映射。列表顺序不保证稳定。

示例

// 查询已订阅标的
let subscriptions = push.get_subscriptions();
// 返回 HashMap<SubjectType, Vec<String>>

返回值

HashMap<SubjectType, Vec<String>> — 主题到本地记录标的列表的映射。


工具方法

subscribe

通用订阅方法,按主题构造订阅帧并写入发送通道。

pub fn subscribe(
    &self,
    subject: &SubjectType,
    symbols: Option<&str>,
    account: Option<&str>,
    market: Option<&str>,
) -> bool
参数类型说明
subject&SubjectType订阅主题(Quote、Option、Future、Depth、TradeTick、Kline、StockTop、OptionTop)
symbolsOption<&str>标的代码,逗号分隔
accountOption<&str>账户(用于交易订阅)
marketOption<&str>市场(用于榜单订阅)

返回 bool:仅表示协议帧是否写入本地发送通道,不表示服务端已接受。

unsubscribe

通用退订方法,参数语义与 subscribe 相同。

pub fn unsubscribe(
    &self,
    subject: &SubjectType,
    symbols: Option<&str>,
    account: Option<&str>,
    market: Option<&str>,
) -> bool

subscribe_market

订阅指定市场的榜单数据(StockTop)。

pub fn subscribe_market(&self, market: &str) -> Result<(), TigerError>

unsubscribe_market

退订指定市场的榜单数据。

pub fn unsubscribe_market(&self, market: &str) -> Result<(), TigerError>

subscribe_cc

订阅数字货币行情。

pub fn subscribe_cc(&self, symbols: &[&str]) -> Result<(), TigerError>

unsubscribe_cc

退订数字货币行情。symbols=None 退订全部数字货币。

pub fn unsubscribe_cc(&self, symbols: Option<&[&str]>) -> Result<(), TigerError>

get_subscriptions

返回本地行情订阅快照。

pub fn get_subscriptions(&self) -> HashMap<SubjectType, Vec<String>>

Did this page help you?