行情订阅

示例上下文

import { createClientConfig, PushClient } from '@tigeropenapi/tigeropen';

const config = createClientConfig();

const pushClient = new PushClient(config);

// 设置回调函数
pushClient.setCallbacks({
  onConnect: () => {
    console.log('连接成功');
    // 连接成功后开始订阅
    pushClient.subscribeQuote(['AAPL', '00700']);
  },
  onQuote: (data) => {
    console.log('行情推送:', data.symbol, data.latestPrice);
  },
  onTick: (data) => {
    console.log('逐笔推送:', data.symbol, data.ticks.length);
  },
  onKline: (data) => {
    console.log('K 线推送:', data.symbol);
  },
  onDisconnect: () => {
    console.log('连接断开');
  },
  onError: (err) => {
    console.error('错误:', err.message);
  },
});

// 发起连接
pushClient.connect();

股票行情

订阅

签名

subscribeQuote(symbols: string[]): void

用途

订阅股票行情推送。数据通过 onQuote 回调接收。

参数、默认值与约束

参数类型必填SDK 默认值约束
symbolsstring[]是无—

返回

void

示例

pushClient.subscribeQuote(['AAPL', '00700']);

回调数据示例(通过 onQuote 接收)

BBO 更新(type=2,仅最优买卖报价变动):

{
  "symbol": "00700",
  "type": 2,
  "timestamp": 1785826149941,
  "serverTimestamp": 1785826149946,
  "latestPrice": 485.4,
  "askPrice": 485.6,
  "askSize": 13000,
  "bidPrice": 485.2,
  "bidSize": 6300,
  "volume": 28453200,
  "amount": 13792456000
}

BASIC 更新(type=1,完整行情快照):

{
  "symbol": "AAPL",
  "type": 1,
  "timestamp": 1785826200000,
  "serverTimestamp": 1785826200005,
  "latestPrice": 198.52,
  "latestPriceTimestamp": 1785826199800,
  "preClose": 197.96,
  "volume": 45230100,
  "amount": 8975632000,
  "open": 198.10,
  "high": 199.62,
  "low": 197.80,
  "avgPrice": 198.35
}

type 字段说明:1 = BASIC(完整行情快照),2 = BBO(仅最优买卖报价更新)。
对 Quote 数据类型,当前分派器不检查 QuoteData.type,因此 BASIC 和 BBO 都通过 onQuote 分派;公开回调接口仍声明了 onQuoteBBO,但当前分派路径不会调用它。


取消订阅

签名

unsubscribeQuote(symbols?: string[]): void

用途

取消股票行情推送。不传参数则取消所有 quote 订阅。

参数、默认值与约束

参数类型必填SDK 默认值约束
symbolsstring[]否无—

返回

void

示例

pushClient.unsubscribeQuote(['AAPL']);

逐笔成交

普通逐笔

签名

subscribeTick(symbols: string[]): void

用途

订阅逐笔成交推送。普通逐笔通过 onTick 以 PushTradeTick 返回。推送频率和每批数量以实际行情为准。

参数、默认值与约束

参数类型必填SDK 默认值约束
symbolsstring[]是无—

返回

void

示例

pushClient.subscribeTick(['AAPL']);

回调数据示例(通过 onTick 接收)

{
  "symbol": "AAPL",
  "secType": "STK",
  "quoteLevel": "usStockQuote",
  "timestamp": 1785826150651,
  "ticks": [
    {
      "sn": 63725,
      "time": 1785826150107,
      "price": 485.6,
      "volume": 200,
      "tickType": "+",
      "cond": "US_REGULAR_SALE",
      "partCode": "NSDQ",
      "partName": "NASDAQ Stock Market, LLC (NASDAQ)"
    }
  ]
}
字段类型描述
symbolstring股票代码
secTypestring证券类型,例如 STK
quoteLevelstring行情权限级别
timestampnumber推送时间,毫秒时间戳
ticksPushTick[]逐笔数组
ticks[].snnumber逐笔序号
ticks[].timenumber成交时间,毫秒时间戳
ticks[].pricenumber成交价
ticks[].volumenumber成交量
ticks[].tickTypestring+ 主动买入、- 主动卖出、* 中性成交
ticks[].condstringSDK 解码后的成交条件名称;详见逐笔成交条件
ticks[].partCode / ticks[].partNamestring已解析的成交场所简称/名称

完整逐笔

签名

new PushClient(config, { useFullTick: true })
subscribeTick(symbols: string[]): void

用途

完整股票逐笔与普通逐笔使用相同的 subscribeTick。完整逐笔请联系 OpenAPI 技术支持申请开通,并在 connect() 前设置 useFullTick: true;数据通过 onFullTick 以 TickData 接收。

参数、默认值与约束

参数类型必填SDK 默认值约束
symbolsstring[]是无—

返回

void

示例

const pushClient = new PushClient(config, { useFullTick: true });
pushClient.setCallbacks({
  onFullTick: (data) => console.log('完整逐笔:', data),
});

await pushClient.connect();
pushClient.subscribeTick(['AAPL']);

回调数据示例(通过 onFullTick 接收)

{
  "symbol": "AAPL",
  "timestamp": 1785826200000,
  "source": "",
  "ticks": [
    {
      "sn": 128450,
      "time": 1785826199800,
      "price": 198.52,
      "volume": 100,
      "type": "+",
      "cond": "",
      "partCode": "d"
    },
    {
      "sn": 128451,
      "time": 1785826199850,
      "price": 198.50,
      "volume": 200,
      "type": "-",
      "cond": "",
      "partCode": "d"
    }
  ]
}

完整逐笔中的每笔成交包含价格和时间。type:+ 主动买,- 主动卖,* 中性。

字段类型描述
symbolstring股票代码
timestampnumber推送时间,毫秒时间戳
sourcestring数据源,可为空
ticksTickData_Tick[]完整逐笔数组
ticks[].snnumber数据到达顺序编号,仅供参考
ticks[].timenumber成交时间,毫秒时间戳
ticks[].pricenumber成交价
ticks[].volumenumber成交量
ticks[].typestring+ 主动买入、- 主动卖出、* 中性成交
ticks[].condstring单字符原始成交条件或空值;详见逐笔成交条件
ticks[].partCodestring成交场所原始代码,可为空

取消订阅

签名

unsubscribeTick(symbols?: string[]): void

用途

取消普通或完整逐笔推送。

参数、默认值与约束

参数类型必填SDK 默认值约束
symbolsstring[]否无—

返回

void

示例

pushClient.unsubscribeTick(['AAPL']);

深度行情

订阅

签名

subscribeDepth(symbols: string[]): void

用途

订阅深度行情推送。美股深度行情推送频率为 300ms,港股深度行情推送频率为 2s。盘口数据通过 onDepth 回调接收。

参数、默认值与约束

参数类型必填SDK 默认值约束
symbolsstring[]是无—

返回

void

示例

pushClient.subscribeDepth(['00700']);

回调数据示例(通过 onDepth 接收)

{
  "symbol": "00700",
  "timestamp": 1785826150200,
  "ask": {
    "price": [485.6, 485.8, 486.0, 486.2, 486.4],
    "volume": [13000, 8500, 22000, 5600, 3200],
    "orderCount": [5, 3, 8, 2, 1],
    "exchange": [],
    "time": []
  },
  "bid": {
    "price": [485.4, 485.2, 485.0, 484.8, 484.6],
    "volume": [6300, 15200, 9800, 4100, 7500],
    "orderCount": [3, 6, 4, 2, 3],
    "exchange": [],
    "time": []
  }
}

港股市场会包含 orderCount(每档委托笔数)。exchange 和 time 字段用于期权交易所信息。


取消订阅

签名

unsubscribeDepth(symbols?: string[]): void

用途

取消深度行情推送。

参数、默认值与约束

参数类型必填SDK 默认值约束
symbolsstring[]否无—

返回

void

示例

pushClient.unsubscribeDepth(['00700']);

期权行情

订阅

签名

subscribeOption(symbols: string[]): void

用途

订阅期权行情推送。数据通过 onOption 回调接收,数据结构与 onQuote 相同(QuoteData 类型)。

参数、默认值与约束

参数类型必填SDK 默认值约束
symbolsstring[]是无—

返回

void

示例

pushClient.subscribeOption(['AAPL  250718C00200000']);

回调数据示例(通过 onOption 接收)

{
  "symbol": "AAPL  250718C00200000",
  "type": 1,
  "timestamp": 1785826200000,
  "serverTimestamp": 1785826200003,
  "latestPrice": 5.30,
  "preClose": 5.15,
  "volume": 12580,
  "identifier": "AAPL  250718C00200000",
  "openInt": 45230,
  "askPrice": 5.35,
  "askSize": 120,
  "bidPrice": 5.25,
  "bidSize": 85
}

期权推送额外包含 identifier(合约标识)和 openInt(未平仓合约数)。


取消订阅

签名

unsubscribeOption(symbols?: string[]): void

用途

取消期权行情推送。

参数、默认值与约束

参数类型必填SDK 默认值约束
symbolsstring[]否无—

返回

void

示例

pushClient.unsubscribeOption(['AAPL  250718C00200000']);

期货行情

订阅

签名

subscribeFuture(symbols: string[]): void

用途

订阅期货行情推送。数据通过 onFuture 回调接收,数据结构与 onQuote 相同(QuoteData 类型)。

参数、默认值与约束

参数类型必填SDK 默认值约束
symbolsstring[]是无—

返回

void

示例

pushClient.subscribeFuture(['ES2506']);

回调数据示例(通过 onFuture 接收)

{
  "symbol": "ES2506",
  "type": 1,
  "timestamp": 1785826200000,
  "serverTimestamp": 1785826200002,
  "latestPrice": 5425.50,
  "preClose": 5410.25,
  "preSettlement": 5412.00,
  "volume": 1520300,
  "tradeTime": 1785826199500,
  "minTick": 0.25,
  "askPrice": 5425.75,
  "askSize": 150,
  "bidPrice": 5425.50,
  "bidSize": 230
}

期货推送额外包含 preSettlement(前结算价)、tradeTime(最新成交时间)和 minTick(最小变动价位)。


取消订阅

签名

unsubscribeFuture(symbols?: string[]): void

用途

取消期货行情推送。

参数、默认值与约束

参数类型必填SDK 默认值约束
symbolsstring[]否无—

返回

void

示例

pushClient.unsubscribeFuture(['ES2506']);

K 线

订阅

签名

subscribeKline(symbols: string[]): void

用途

订阅分钟 K 线推送。数据通过 onKline 回调接收。

参数、默认值与约束

参数类型必填SDK 默认值约束
symbolsstring[]是无—

返回

void

示例

pushClient.subscribeKline(['AAPL']);

回调数据示例(通过 onKline 接收)

{
  "symbol": "AAPL",
  "time": 1785826140000,
  "open": 198.35,
  "high": 198.62,
  "low": 198.20,
  "close": 198.52,
  "avg": 198.41,
  "volume": 125600,
  "count": 890,
  "amount": 24920000,
  "serverTimestamp": 1785826200005
}

同一分钟可能收到多次 K 线回调,调用方应按 time 更新时间相同的当前分钟数据。time 为该分钟起始时间戳,count 为该分钟内成交笔数。


取消订阅

签名

unsubscribeKline(symbols?: string[]): void

用途

取消 K 线推送。

参数、默认值与约束

参数类型必填SDK 默认值约束
symbolsstring[]否无—

返回

void

示例

pushClient.unsubscribeKline(['AAPL']);

股票榜单

订阅

签名

subscribeStockTop(market: string, indicators: string[]): void

用途

订阅股票排行榜推送。数据通过 onStockTop 回调接收。

参数、默认值与约束

参数类型必填SDK 默认值约束
marketstring是无—
indicatorsstring[]是无—

返回

void

示例

pushClient.subscribeStockTop('US', ['changeRate', 'volume']);

回调数据示例(通过 onStockTop 接收)

{
  "market": "US",
  "timestamp": 1785826200000,
  "topData": [
    {
      "targetName": "volume",
      "item": [
        { "symbol": "NVDA", "latestPrice": 135.20, "targetValue": 82500000 },
        { "symbol": "TSLA", "latestPrice": 248.50, "targetValue": 65300000 },
        { "symbol": "AAPL", "latestPrice": 198.52, "targetValue": 45230100 }
      ]
    },
    {
      "targetName": "changeRate",
      "item": [
        { "symbol": "XYZ", "latestPrice": 12.80, "targetValue": 0.156 },
        { "symbol": "ABC", "latestPrice": 45.30, "targetValue": 0.098 }
      ]
    }
  ]
}

targetName 支持的指标:changeRate(涨跌幅)、changeRate5Min(5 分钟涨跌幅)、turnoverRate(换手率)、amount(成交额)、volume(成交量)、amplitude(振幅)。


取消订阅

签名

unsubscribeStockTop(market: string, indicators: string[]): void

用途

取消股票排行榜推送。

参数、默认值与约束

参数类型必填SDK 默认值约束
marketstring是无—
indicatorsstring[]是无—

返回

void

示例

pushClient.unsubscribeStockTop('US', ['volume']);

期权榜单

订阅

签名

subscribeOptionTop(market: string, indicators: string[]): void

用途

订阅期权排行榜推送。数据通过 onOptionTop 回调接收。

参数、默认值与约束

参数类型必填SDK 默认值约束
marketstring是无—
indicatorsstring[]是无—

返回

void

示例

pushClient.subscribeOptionTop('US', ['volume', 'bigOrder']);

回调数据示例(通过 onOptionTop 接收)

{
  "market": "US",
  "timestamp": 1785826200000,
  "topData": [
    {
      "targetName": "volume",
      "bigOrder": [],
      "item": [
        {
          "symbol": "TSLA",
          "expiry": "20250718",
          "strike": "260.0",
          "right": "CALL",
          "totalAmount": 5820000,
          "totalVolume": 98500,
          "totalOpenInt": 125000,
          "volumeToOpenInt": 0.788,
          "latestPrice": 8.65,
          "updateTime": 1785826199000
        }
      ]
    },
    {
      "targetName": "bigOrder",
      "bigOrder": [
        {
          "symbol": "AAPL",
          "expiry": "20250718",
          "strike": "200.0",
          "right": "CALL",
          "dir": "BUY",
          "volume": 5000,
          "price": 5.30,
          "amount": 2650000,
          "tradeTime": 1785826180000
        }
      ],
      "item": []
    }
  ]
}

targetName 支持的指标:bigOrder(大单)、volume(成交量)、amount(成交额)、openInt(持仓量)。大单条件:单笔成交量 > 1000 张。


取消订阅

签名

unsubscribeOptionTop(market: string, indicators: string[]): void

用途

取消期权排行榜推送。

参数、默认值与约束

参数类型必填SDK 默认值约束
marketstring是无—
indicatorsstring[]是无—

返回

void

示例

pushClient.unsubscribeOptionTop('US', ['volume']);

数字货币行情

订阅

签名

subscribeCc(symbols: string[]): void

用途

订阅数字货币实时行情。数据通过 onQuote 回调以 QuoteData 接收;此方法不用于股票完整逐笔。

pushClient.subscribeCc(['BTC.USD', 'ETH.USD']);

取消订阅

签名

unsubscribeCc(symbols?: string[]): void
pushClient.unsubscribeCc(['BTC.USD']);

港股全市场行情

订阅

签名

subscribeMarket(market: string): void

用途

订阅港股全市场行情。服务端通过普通行情消息按标的持续推送 QuoteData,数据由 onQuote 回调接收;这不是市场状态订阅,也不是一次性的全市场行情快照或股票榜单。

参数、默认值与约束

参数类型必填SDK 默认值约束
marketstring是无仅支持 HK

返回

void

示例

pushClient.subscribeMarket('HK');

取消订阅

签名

unsubscribeMarket(market: string): void

用途

取消港股全市场行情推送。

参数、默认值与约束

参数类型必填SDK 默认值约束
marketstring是无仅支持 HK

返回

void

示例

pushClient.unsubscribeMarket('HK');

Did this page help you?