行情订阅

大约 20 分钟

订阅行情

subscribeQuote(Set<String> symbols)
取消方法
cancelSubscribeQuote(Set<String> symbols)

说明

订阅API,提供了股票行情数据订阅服务,可以实时获取行情的变化信息。 行情订阅推送接口是异步接口,通过实现ApiComposeCallback接口可以获得异步请求结果。 回调接口返回结果类型为基本行情QuoteBasicData对象,最优报价QuoteBBOData对象。

输入参数

参数类型是否必填说明
symbolsSet<String>Yes股票代码列表

股票symbol格式: 如:AAPL, 00700

返回值

字段类型说明
idstringsdk订阅请求时本地生成的ID,序列递增。在subscribeEnd(int id, String subject, String result)回调方法中返回请求id和订阅是否成功的结果

回调接口

void quoteChange(QuoteBasicData data)void quoteAskBidChange(QuoteBBOData data)

示例

定义回调接口,订阅成功后,会在该回调类的对应接口中接收到数据。

package com.tigerbrokers.stock.openapi.demo;

import com.tigerbrokers.stock.openapi.client.socket.ApiComposeCallback;
import com.tigerbrokers.stock.openapi.client.socket.data.TradeTick;
import com.tigerbrokers.stock.openapi.client.socket.data.pb.AssetData;
import com.tigerbrokers.stock.openapi.client.socket.data.pb.KlineData;
import com.tigerbrokers.stock.openapi.client.socket.data.pb.OptionTopData;
import com.tigerbrokers.stock.openapi.client.socket.data.pb.OrderStatusData;
import com.tigerbrokers.stock.openapi.client.socket.data.pb.OrderTransactionData;
import com.tigerbrokers.stock.openapi.client.socket.data.pb.PositionData;
import com.tigerbrokers.stock.openapi.client.socket.data.pb.QuoteBBOData;
import com.tigerbrokers.stock.openapi.client.socket.data.pb.QuoteBasicData;
import com.tigerbrokers.stock.openapi.client.socket.data.pb.QuoteDepthData;
import com.tigerbrokers.stock.openapi.client.socket.data.pb.StockTopData;
import com.tigerbrokers.stock.openapi.client.socket.data.pb.TickData;
import com.tigerbrokers.stock.openapi.client.struct.SubscribedSymbol;
import com.tigerbrokers.stock.openapi.client.util.ApiLogger;
import com.tigerbrokers.stock.openapi.client.util.ProtoMessageUtil;

public class DefaultApiComposeCallback implements ApiComposeCallback {

  /*股票基本行情回调*/
  @Override
  public void quoteChange(QuoteBasicData data) {
    ApiLogger.info("quoteChange:" + ProtoMessageUtil.toJson(data));
  }
  /*股票最优买卖价行情回调*/
  @Override
  public void quoteAskBidChange(QuoteBBOData data) {
    ApiLogger.info("quoteAskBidChange:" + ProtoMessageUtil.toJson(data));
  }
  
  /*期权行情回调*/
  @Override
  public void optionChange(QuoteBasicData data) {
    ApiLogger.info("optionChange:" + ProtoMessageUtil.toJson(data));
  }
  /*期权最优买卖价行情回调*/
  @Override
  public void optionAskBidChange(QuoteBBOData data) {
    ApiLogger.info("optionAskBidChange:" + ProtoMessageUtil.toJson(data));
  }

  /*期货行情回调*/
  @Override
  public void futureChange(QuoteBasicData data) {
    ApiLogger.info("futureChange:" + ProtoMessageUtil.toJson(data));
  }
  /*期货最优买卖价行情回调*/
  @Override
  public void futureAskBidChange(QuoteBBOData data) {
    ApiLogger.info("futureAskBidChange:" + ProtoMessageUtil.toJson(data));
  }

  /*深度行情回调*/
  @Override
  public void depthQuoteChange(QuoteDepthData data) {
    ApiLogger.info("depthQuoteChange:" + ProtoMessageUtil.toJson(data));
  }
  
  /*逐笔成交行情回调*/
  @Override
  public void tradeTickChange(TradeTick data) {
    ApiLogger.info("tradeTickChange:" + JacksonUtil.writeValueAsString(data));
  }
  /*全量逐笔成交行情回调*/
  @Override
  public void fullTickChange(TickData data) {
      ApiLogger.info("fullTickChange:" + ProtoMessageUtil.toJson(data));
  }
  /*分钟K线数据回调*/
  @Override
  public void klineChange(KlineData data) {
    ApiLogger.info("klineChange:" + ProtoMessageUtil.toJson(data));
  }

  /**股票行情榜单数据推送*/
  @Override
  public void stockTopPush(StockTopData data) {
    ApiLogger.info("stockTopPush, market:" + data.getMarket());
    for (StockTopData.TopData topData : data.getTopDataList()) {
      ApiLogger.info("stockTopPush, targetName:" + topData.getTargetName()
          + ", topList:" + ProtoMessageUtil.toJson(topData));
    }
  }

  /**期权行情榜单数据推送*/
  @Override
  public void optionTopPush(OptionTopData data) {
    ApiLogger.info("optionTopPush, market:" + data.getMarket());
    for (OptionTopData.TopData topData : data.getTopDataList()) {
      ApiLogger.info("optionTopPush, targetName:" + topData.getTargetName()
          + ", topList:" + ProtoMessageUtil.toJson(topData));
    }
  }
  
  /*订阅成功回调*/
  @Override
  public void subscribeEnd(int id, String subject, String result) {
    ApiLogger.info("subscribe " + subject + " end. id:" + id + ", " + result);
  }

  /*取消订阅回调*/
  @Override
  public void cancelSubscribeEnd(int id, String subject, String result) {
    ApiLogger.info("cancel subscribe " + subject + " end. id:" + id + ", " + result);
  }

  /*查询已订阅symbol回调*/
  @Override
  public void getSubscribedSymbolEnd(SubscribedSymbol subscribedSymbol) {
    ApiLogger.info("getSubscribedSymbolEnd:" + JSONObject.toJSONString(subscribedSymbol));
  }
}

进行订阅

public class WebSocketDemo {

//实际订阅时需要填充tigerId和privateKey,并实现ApiComposeCallback接口,示例里面为DefaultApiComposeCallback
  private static ClientConfig clientConfig = ClientConfig.DEFAULT_CONFIG;
  private static WebSocketClient client;
  static {
    //从开发者信息页面导出的配置文件tiger_openapi_config.properties、tiger_openapi_token.properties存放路径
    clientConfig.configFilePath = "/data/tiger_config";
    // clientConfig.secretKey = "xxxxxx";// institutional trader private key
    client = WebSocketClient.getInstance().clientConfig(clientConfig).apiComposeCallback(new DefaultApiComposeCallback());
  }

  public static void subscribe() {
    client.connect();
    Set<String> symbols = new HashSet<>();

    //股票订阅
    symbols.add("AAPL");
    symbols.add("SPY");

    //订阅相关symbol
    client.subscribeQuote(symbols);

    //订阅深度数据(只支持股票)
    client.subscribeDepthQuote(symbols);

    //查询订阅详情
    client.getSubscribedSymbols();

    //等待接收数据
    TimeUnit.SECONDS.sleep(60000);
    //取消订阅
    client.cancelSubscribeQuote(symbols);
    client.cancelSubscribeDepthQuote(symbols);
    //取消全部标的(股票,期权,期货)的行情订阅
    client.cancelSubscribeQuote(new HashSet<>());
    //取消全部标的(股票,期货)的深度行情订阅
    client.cancelSubscribeDepthQuote(new HashSet<>());
    //取消全部标的(股票,期货)的逐笔行情订阅
    client.cancelSubscribeTradeTick(new HashSet<>());

    //注意:主动断开连接时会清除所有的订阅数据
    //client.disconnect();
  }
}

返回数据

股票行情回调数据全部字段参考:行情推送数据

CAUTION

股票行情回调数据有两种类型:基本行情QuoteBasicData,最优报价QuoteBBOData,两种类型数据返回的字段不一样 。

港股股票行情数据示例:

{
    "symbol":"00700",
    "type":"BASIC",
    "timestamp":"1684721758123",
    "serverTimestamp":"1684721758228",
    "avgPrice":330.493,
    "latestPrice":332.2,
    "latestPriceTimestamp":"1684721758103",
    "latestTime":"05-22 10:15:58",
    "preClose":333.2,
    "volume":"4400026",
    "amount":1454057948,
    "open":331.8,
    "high":334.2,
    "low":328.2,
    "marketStatus":"Trading",
    "mi":{
        "p":332.2,
        "a":330.493,
        "t":"1684721700000",
        "v":"75400",
        "o":331.6,
        "h":332.2,
        "l":331.4
    }
}

港股盘口最优买卖价行情数据示例:

{
    "symbol":"00700",
    "type":"BBO",
    "timestamp":"1684721757927",
    "askPrice":332.2,
    "askSize":"32100",
    "askTimestamp":"1684721757344",
    "bidPrice":332,
    "bidSize":"3500",
    "bidTimestamp":"1684721757773"
}

美股股票行情数据示例:

{
    "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.410586,
    "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
    }
}

美股股票盘口数据示例:

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

美股股票盘前交易数据示例:

CAUTION

美股盘前盘后的字段和盘中不一样

{
    "symbol":"AAPL",
    "type":"BASIC",
    "timestamp":"1684753559744",
    "serverTimestamp":"1684753559752",
    "latestPrice":173.66,
    "latestPriceTimestamp":"1684753559744",
    "latestTime":"07:05 EDT",
    "preClose":175.16,
    "volume":"366849",
    "amount":63731858.18000001,
    "hourTradingTag":"PreMarket",
    "mi":{
        "p":173.66,
        "a":173.72891,
        "t":"1684753500000",
        "v":"5604",
        "o":173.64,
        "h":173.67,
        "l":173.63
    }
}

订阅期权行情

subscribeOption(Set<String> symbols)
取消方法
cancelSubscribeOption(Set<String> symbols)

说明

订阅期权行情(只支持美国市场期权)。 行情订阅推送接口是异步接口,通过实现ApiComposeCallback接口可以获得异步请求结果。 回调接口返回结果类型为基本行情QuoteBasicData对象,最优报价QuoteBBOData对象。

请求参数

参数类型是否必填说明
symbolsSet<String>Yes期权代码列表

期权symbol格式:期权symbol支持2种格式。 一种是symbol名称+到期日+行权价格+方向,以空格分隔。如:(AAPL 20190329 182.5 PUT)。 另一种为identifier,查询期权行情时返回该字段。如:(SPY 190508C00290000)

返回值

字段类型说明
idstringsdk订阅请求时本地生成的ID,序列递增。在subscribeEnd(int id, String subject, String result)回调方法中返回请求id和订阅是否成功的结果

订阅示例

Set<String> symbols = new HashSet<>();
//期权的一种订阅方式
symbols.add("AAPL 20230317 150.0 CALL");
//期权另外一种订阅方式
symbols.add("SPY   190508C00290000");

client.subscribeOption(symbols);

//Wait to receive the data
TimeUnit.SECONDS.sleep(120000);
// Cancel subscription
client.cancelSubscribeOption(symbols);

对应回调接口

void optionChange(QuoteBasicData data)void optionAskBidChange(QuoteBBOData data)

返回数据

美股期权交易数据示例:

{
    "symbol":"AAPL 20230317 150.0 CALL",
    "type":"BASIC",
    "timestamp":"1676994444927",
    "latestPrice":4.83,
    "latestPriceTimestamp":"1676994444927",
    "latestTime":"",
    "preClose":6.21,
    "volume":"3181",
    "amount":939117.0060634613,
    "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"
}

订阅期货行情

subscribeFuture(Set<String> symbols)
取消方法
cancelSubscribeFuture(Set<String> symbols)

说明

订阅期货行情。 行情订阅推送接口是异步接口,通过实现ApiComposeCallback接口可以获得异步请求结果。 回调接口返回结果类型为基本行情QuoteBasicData对象,最优报价QuoteBBOData对象。

请求参数

参数类型是否必填说明
symbolsSet<String>Yes期货代码列表

返回值

字段类型说明
idstringsdk订阅请求时本地生成的ID,序列递增。在subscribeEnd(int id, String subject, String result)回调方法中返回请求id和订阅是否成功的结果

示例

Set<String> symbols = new HashSet<>();
//期货订阅
symbols.add("ESmain");
symbols.add("ES2306");

client.subscribeFuture(symbols);

//Wait to receive the data
TimeUnit.SECONDS.sleep(120000);
// Cancel subscription
client.cancelSubscribeFuture(symbols);

对应回调接口void futureChange(QuoteBasicData data)void futureAskBidChange(QuoteBBOData data)

返回示例

期货行情数据示例:

{
    "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"
}

订阅深度行情

subscribeDepthQuote(Set<String> symbols)
取消方法
cancelSubscribeDepthQuote(Set<String> symbols)

说明

订阅多档深度行情。只支持美股和港股的股票,美股期权和期货。美股深度行情推送频率为300ms,港股深度行情推送频率为2s,返回最高40档的买卖盘挂单数据(港股只有10档)。 行情订阅推送接口是异步接口,通过实现ApiComposeCallback接口可以获得异步请求结果。 回调接口返回结果类型为QuoteDepthData对象。

请求参数

参数类型是否必填说明
symbolsSet<String>Yes股票、期权、期货代码列表

返回值

字段类型说明
idstringsdk订阅请求时本地生成的ID,序列递增。在subscribeEnd(int id, String subject, String result)回调方法中返回请求id和订阅是否成功的结果

示例

Set<String> symbols = new HashSet<>();
//深度行情订阅
symbols.add("AAPL");
symbols.add("ESmain");
symbols.add("AAPL 20240209 180.0 CALL");

client.subscribeDepthQuote(symbols);

//Wait to receive the data
TimeUnit.SECONDS.sleep(120000);
// Cancel subscription
client.cancelSubscribeDepthQuote(symbols);

回调接口

void depthQuoteChange(QuoteDepthData data)

返回数据

数据结构如下:

字段类型说明
symbolstring股票标的
timestamplong深度数据时间
askList<OrderBook>卖盘数据
bidList<OrderBook>买盘数据

OrderBook的数据结构如下:

字段类型说明
pricedouble每档价格
volumelong挂单量
orderCountint订单数(只有港股股票有值)
exchangestring期权数据源(只有期权有值),如果price或volume为0,表示这个数据源的报价已失效。枚举值详见: 期权交易所
timelong期权交易所挂单时间戳(只有期权有值)

回调结果示例

// US Market
{"symbol":"AAPL","timestamp":"1676993368405","ask":{"price":[149.69,149.69,149.69,149.69,149.69,149.69,149.7,149.7,149.7,149.7,149.7,149.7,149.7,149.7,149.7,149.7,149.71,149.71,149.71,149.71,149.71,149.71,149.71,149.71,149.72,149.72,149.72,149.72,149.72,149.72,149.72,149.72,149.72,149.72,149.73,149.73,149.73,149.73,149.73,149.73],"volume":["100","100","23","200","100","100","200","100","100","100","82","100","100","200","25","100","185","100","100","82","87","25","100","100","100","100","76","200","100","100","16","87","100","100","100","100","200","100","76","100"]},"bid":{"price":[149.68,149.68,149.68,149.68,149.67,149.67,149.67,149.67,149.67,149.67,149.67,149.67,149.66,149.66,149.66,149.66,149.66,149.66,149.66,149.66,149.66,149.66,149.66,149.66,149.66,149.65,149.65,149.65,149.65,149.65,149.65,149.65,149.65,149.65,149.65,149.64,149.64,149.64,149.64,149.64],"volume":["84","87","100","100","100","49","100","100","87","200","100","100","100","100","100","20","1","4","1","200","100","87","25","100","200","200","100","1","25","87","100","100","100","25","100","100","100","1","87","100"]}}

// HK Market
{"symbol":"00700","timestamp":"1670465696884","ask":{"price":[311.4,311.6,311.8,312.0,312.2,312.4,312.6,312.8,313.0,313.2],"volume":["15600","5700","16600","33800","61100","14800","28300","28400","61100","39200"],"orderCount":[16,13,19,79,39,29,66,56,160,27]},"bid":{"price":[311.2,311.0,310.8,310.6,310.4,310.2,310.0,309.8,309.6,309.4],"volume":["2300","8300","18000","8800","7700","8500","26700","11700","13700","22600"],"orderCount":[10,15,18,9,6,11,17,30,10,5]}}

订阅逐笔成交数据

subscribeTradeTick(Set<String> symbols)
取消方法
cancelSubscribeTradeTick(Set<String> symbols)

说明

订阅股票的逐笔成交数据,逐笔推送间隔为200ms,采用快照方式推送,每次推送最新的50条逐笔记录。 逐笔成交订阅推送接口是异步接口,通过实现ApiComposeCallback接口可以获得异步请求结果。 回调接口返回结果类型为TradeTick对象。

支持美国和香港市场股票、期货标的订阅

请求参数

参数类型是否必填说明
symbolsSet<String>Yes股票、期货代码列表

返回值

字段类型说明
idstringsdk订阅请求时本地生成的ID,序列递增。在subscribeEnd(int id, String subject, String result)回调方法中返回请求id和订阅是否成功的结果

订阅示例

Set<String> symbols = new HashSet<>();
//逐笔成交股票标的订阅
symbols.add("AAPL");
symbols.add("00700");
symbols.add("ESmain");

client.subscribeTradeTick(symbols);

//Wait to receive the data
TimeUnit.SECONDS.sleep(120000);
// Cancel subscription
client.cancelSubscribeTradeTick(symbols);

对应回调接口

void tradeTickChange(TradeTick data)

TradeTick数据结构如下:

字段类型说明
symbolstring股票标的、期货标的
secTypeSecTypeSTK/FUT
quoteLevelstring数据来自的行情权限级别(对于美股,usQuoteBasic的逐笔数据量比usStockQuote的要少);期货没有级别区分
timestamplong数据时间戳
ticksList<Tick>逐笔成交数据集合

ticks的数据结构如下:

字段类型说明
snlong逐笔序号
volumelong成交量
tickTypestring*表示中性,+表示主动买入,-表示主动卖出(期货逐笔没有)
pricedouble成交价
timelong交易时间戳
condstring每笔数据的成交条件列表,如果数组为空表示当前批量的每笔都为自动对盘成交(期货逐笔没有)
partCodestring每笔交易的交易所code(仅美股股票)
partNamestring每笔交易的交易所名(仅美股股票)

回调结果示例

// 美股
{"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"},{"sn":116204,"volume":1,"tickType":"*","price":149.67,"time":1676993925200,"cond":"US_REGULAR_SALE"},{"sn":116205,"volume":5,"tickType":"*","price":149.6652,"time":1676993925410,"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"}]}

// Futures trade tick
{"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},{"sn":261562,"volume":1,"price":17465.0,"time":1669345639000},{"sn":261563,"volume":1,"price":17465.0,"time":1669345639000}]}

订阅股票行情榜单数据

subscribeStockTop(Market market, Set<Indicator> indicators)
取消方法
cancelSubscribeStockTop(Market market, Set<Indicator> indicators)

说明

订阅股票的行情榜单数据,非交易时间不推送,推送间隔为30s,每次推送订阅指标Top30的标的数据。 推送接口是异步回调,通过实现ApiComposeCallback接口可以获得异步请求结果。 回调接口返回结果类型为StockTopData对象。各指标数据按指标值倒排序。

支持美国和香港市场股票指标的订阅,盘中数据榜单有StockRankingIndicator所有指标,美股盘前盘后只有涨幅(changeRate)和5分钟涨幅(changeRate5Min)两个指标的榜单数据

请求参数

参数类型是否必填说明
marketMarketYes市场,支持US, HK
indicatorsSet<Indicator>No股票榜单指标,默认为全部指标,参考枚举StockRankingIndicator的值(changeRate:当天涨幅; changeRate5Min:5分钟涨幅; turnoverRate:换手率; amount:当日成交额; volume:当日成交量; amplitude:当日振幅)

返回值

字段类型说明
idstringsdk订阅请求时本地生成的ID,序列递增。在subscribeEnd(int id, String subject, String result)回调方法中返回请求id和订阅是否成功的结果

订阅示例

Market market = Market.US;
Set<Indicator> indicators = new HashSet<>();
indicators.add(StockRankingIndicator.Amplitude);
indicators.add(StockRankingIndicator.TurnoverRate);
//订阅市场所有指标
client.subscribeStockTop(market, null)

//Wait to receive the data
TimeUnit.SECONDS.sleep(120000);
// Cancel subscription of ’amplitude‘ and 'turnoverRate'
client.cancelSubscribeStockTop(market, indicators);
// Cancel all indicators's subscription
client.cancelSubscribeStockTop(market, null);

对应回调接口

void stockTopPush(StockTopData data)

StockTopData数据结构如下:

字段类型说明
marketstring市场:US/HK
timestamplong时间戳
topDataList<TopData>各指标榜单数据列表

TopData的数据结构如下:

字段类型说明
targetNamestring指标名(changeRate, changeRate5Min, turnoverRate, amount, volume, amplitude)
itemList<StockItem>该指标维度下的榜单数据列表

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
                },
                {
                    "symbol":"LYRA",
                    "latestPrice":3.75,
                    "targetValue":0.237624
                },
                {
                    "symbol":"CANO",
                    "latestPrice":1.4847,
                    "targetValue":0.18776
                }
                // ......
            ]
        },
        {
            "targetName":"turnoverRate",
            "item":[
                {
                    "symbol":"SBBA",
                    "latestPrice":24.8,
                    "targetValue":191.046512
                },
                {
                    "symbol":"VCIG",
                    "latestPrice":3.88,
                    "targetValue":13.82794
                },
                {
                    "symbol":"BOIL",
                    "latestPrice":3.225,
                    "targetValue":10.681214
                },
                {
                    "symbol":"GDV",
                    "latestPrice":20.86,
                    "targetValue":8.257162
                },
                {
                    "symbol":"NUWE",
                    "latestPrice":3.1611,
                    "targetValue":6.755784
                }
                // ......
            ]
        },
        {
            "targetName":"amount",
            "item":[
                {
                    "symbol":"TSLA",
                    "latestPrice":263.21,
                    "targetValue":10629393179.8
                },
                {
                    "symbol":"SPY",
                    "latestPrice":435.64,
                    "targetValue":5839415251.67
                },
                {
                    "symbol":"NVDA",
                    "latestPrice":428.3801,
                    "targetValue":5123997584.1
                },
                {
                    "symbol":"QQQ",
                    "latestPrice":364.72,
                    "targetValue":3979912590.29
                },
                {
                    "symbol":"BRK.A",
                    "latestPrice":509004,
                    "targetValue":2529965164.19
                }
                // ......
            ]
        },
        {
            "targetName":"volume",
            "item":[
                {
                    "symbol":"TSLA",
                    "latestPrice":263.21,
                    "targetValue":40190416
                },
                {
                    "symbol":"NKLA",
                    "latestPrice":1.2586,
                    "targetValue":33326008
                },
                {
                    "symbol":"FISV",
                    "latestPrice":114.23,
                    "targetValue":31689406
                },
                {
                    "symbol":"SQQQ",
                    "latestPrice":19.93,
                    "targetValue":31339556
                },
                {
                    "symbol":"PLTR",
                    "latestPrice":15.98,
                    "targetValue":30249797
                }
                // ......
            ]
        },
        {
            "targetName":"amplitude",
            "item":[
                {
                    "symbol":"ICAD",
                    "latestPrice":1.63,
                    "targetValue":0.333333
                },
                {
                    "symbol":"VCIG",
                    "latestPrice":3.88,
                    "targetValue":0.293286
                },
                {
                    "symbol":"GRCL",
                    "latestPrice":3.8285,
                    "targetValue":0.281059
                },
                {
                    "symbol":"ZJYL",
                    "latestPrice":10.2165,
                    "targetValue":0.278427
                },
                {
                    "symbol":"NUWE",
                    "latestPrice":3.1611,
                    "targetValue":0.262799
                }
                // ......
            ]
        },
        {
            "targetName":"changeRate5Min",
            "item":[
                {
                    "symbol":"ICAD",
                    "latestPrice":1.63,
                    "targetValue":0.077419
                },
                {
                    "symbol":"EUDA",
                    "latestPrice":1.3,
                    "targetValue":0.072
                },
                {
                    "symbol":"WEL",
                    "latestPrice":10.75,
                    "targetValue":0.070233
                },
                {
                    "symbol":"TYGO",
                    "latestPrice":17.255,
                    "targetValue":0.068901
                },
                {
                    "symbol":"SSU",
                    "latestPrice":3.2512,
                    "targetValue":0.065967
                }
                // ......
            ]
        }
    ]
}

订阅期权行情榜单数据

subscribeOptionTop(Market market, Set<Indicator> indicators)
取消方法
cancelSubscribeOptionTop(Market market, Set<Indicator> indicators)

说明

订阅期权的行情榜单数据,非交易时间不推送,推送间隔为30s,每次推送订阅指标Top50的标的数据。 推送接口是异步回调,通过实现ApiComposeCallback接口可以获得异步请求结果。 回调接口返回结果类型为OptionTopData对象。其中异动大单为单笔成交量大于1000,按成交时间倒排序的数据,其他指标数据为交易日累计指标值的倒序数据。

支持美国市场期权指标的订阅,盘中数据榜单有OptionRankingIndicator所有指标。

请求参数

参数类型是否必填说明
marketMarketYes市场,支持US
indicatorsSet<Indicator>No期权榜单指标,默认为全部指标,参考枚举OptionRankingIndicator的值(bigOrder:异动大单, volume:当日累计成交量, amount:当日累计成交额, openInt:未平仓量)

返回值

字段类型说明
idstringsdk订阅请求时本地生成的ID,序列递增。在subscribeEnd(int id, String subject, String result)回调方法中返回请求id和订阅是否成功的结果

订阅示例

Market market = Market.US;
Set<Indicator> indicators = new HashSet<>();
indicators.add(OptionRankingIndicator.Amount);
indicators.add(OptionRankingIndicator.OpenInt);
//订阅市场所有指标
client.subscribeOptionTop(market, null)

//Wait to receive the data
TimeUnit.SECONDS.sleep(120000);
// Cancel subscription of ’amount‘ and 'openInt'
client.cancelSubscribeOptionTop(market, indicators);
// Cancel all indicators's subscription
client.cancelSubscribeOptionTop(market, null);

对应回调接口

void optionTopPush(OptionTopData data)

OptionTopData数据结构如下:

字段类型说明
marketstring市场:US
timestamplong时间戳
topDataList<TopData>各指标榜单数据列表

TopData的数据结构如下:

字段类型说明
targetNamestring指标名(bigOrder, volume, amount, openInt)
bigOrderList<BigOrder>异动大单指标(bigOrder)数据列表
itemList<OptionItem>该指标维度下的榜单数据列表

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最新价
updateTimelong指标数据更新时间戳

回调结果示例

{
    "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"
                },
                {
                    "symbol":"SPY",
                    "expiry":"20230620",
                    "strike":"437.0",
                    "right":"PUT",
                    "totalAmount":10420625,
                    "totalVolume":182078,
                    "totalOpenInt":13973,
                    "volumeToOpenInt":0.010683,
                    "latestPrice":1.17,
                    "updateTime":"1687277213602"
                },
                {
                    "symbol":"SPY",
                    "expiry":"20230620",
                    "strike":"438.0",
                    "right":"CALL",
                    "totalAmount":4482482,
                    "totalVolume":181899,
                    "totalOpenInt":961,
                    "volumeToOpenInt":0.010673,
                    "latestPrice":0.09,
                    "updateTime":"1687277213603"
                },
                {
                    "symbol":"SPY",
                    "expiry":"20230620",
                    "strike":"436.0",
                    "right":"CALL",
                    "totalAmount":7331667,
                    "totalVolume":150604,
                    "totalOpenInt":238,
                    "volumeToOpenInt":0.008837,
                    "latestPrice":0.66,
                    "updateTime":"1687277208599"
                }
                // ......
            ]
        },
        {
            "targetName":"amount",
            "item":[
                {
                    "symbol":"TSLA",
                    "expiry":"20230721",
                    "strike":"5.0",
                    "right":"CALL",
                    "totalAmount":34061561,
                    "totalVolume":1812,
                    "totalOpenInt":18,
                    "volumeToOpenInt":0.00023,
                    "latestPrice":259.99,
                    "updateTime":"1687276953360"
                },
                {
                    "symbol":"TSLA",
                    "expiry":"20230721",
                    "strike":"500.0",
                    "right":"PUT",
                    "totalAmount":30877216,
                    "totalVolume":1960,
                    "volumeToOpenInt":0.000248,
                    "latestPrice":234.97,
                    "updateTime":"1687276953360"
                },
                {
                    "symbol":"TSLA",
                    "expiry":"20230623",
                    "strike":"265.0",
                    "right":"CALL",
                    "totalAmount":27928028,
                    "totalVolume":66361,
                    "totalOpenInt":12928,
                    "volumeToOpenInt":0.008405,
                    "latestPrice":6.5,
                    "updateTime":"1687277264395"
                },
                {
                    "symbol":"SPY",
                    "expiry":"20230721",
                    "strike":"420.0",
                    "right":"CALL",
                    "totalAmount":21629503,
                    "totalVolume":11105,
                    "totalOpenInt":46931,
                    "volumeToOpenInt":0.000652,
                    "latestPrice":19.27,
                    "updateTime":"1687273142271"
                },
                {
                    "symbol":"TSLA",
                    "expiry":"20230623",
                    "strike":"270.0",
                    "right":"CALL",
                    "totalAmount":17657903,
                    "totalVolume":61012,
                    "totalOpenInt":14302,
                    "volumeToOpenInt":0.007728,
                    "latestPrice":4.52,
                    "updateTime":"1687277254390"
                }
                // ......
            ]
        },
        {
            "targetName":"openInt",
            "item":[
                {
                    "symbol":"AMC",
                    "expiry":"20230721",
                    "strike":"10.0",
                    "right":"CALL",
                    "totalAmount":4933,
                    "totalVolume":750,
                    "totalOpenInt":340843,
                    "volumeToOpenInt":0.00022,
                    "latestPrice":0.1,
                    "updateTime":"1687276788220"
                },
                {
                    "symbol":"AMC",
                    "expiry":"20230721",
                    "strike":"10.0",
                    "right":"PUT",
                    "totalVolume":1,
                    "totalOpenInt":321814,
                    "latestPrice":6.2,
                    "updateTime":"1687276853278"
                },
                {
                    "symbol":"AMC",
                    "expiry":"20230721",
                    "strike":"4.0",
                    "right":"PUT",
                    "totalAmount":117982,
                    "totalVolume":2748,
                    "totalOpenInt":242101,
                    "volumeToOpenInt":0.000806,
                    "latestPrice":0.81,
                    "updateTime":"1687277034280"
                },
                {
                    "symbol":"ATVI",
                    "expiry":"20240119",
                    "strike":"85.0",
                    "right":"PUT",
                    "totalAmount":3500,
                    "totalVolume":26,
                    "totalOpenInt":230702,
                    "volumeToOpenInt":0.000016,
                    "latestPrice":7,
                    "updateTime":"1687274092822"
                },
                {
                    "symbol":"EEM",
                    "expiry":"20231215",
                    "strike":"47.0",
                    "right":"CALL",
                    "totalAmount":310,
                    "totalVolume":15,
                    "totalOpenInt":183054,
                    "volumeToOpenInt":0.000003,
                    "latestPrice":0.18,
                    "updateTime":"1687269619956"
                }
                // ......
            ]
        },
        {
            "targetName":"bigOrder",
            "bigOrder":[
                {
                    "symbol":"AMC",
                    "expiry":"20230818",
                    "strike":"10.0",
                    "right":"PUT",
                    "dir":"Buy",
                    "volume":1000,
                    "price":6.94,
                    "amount":694000,
                    "tradeTime":"1687276860753"
                },
                {
                    "symbol":"GLPI",
                    "expiry":"20230818",
                    "strike":"50.0",
                    "right":"CALL",
                    "dir":"Sell",
                    "volume":1094,
                    "price":1.2,
                    "amount":131280,
                    "tradeTime":"1687276744519"
                },
                {
                    "symbol":"AMD",
                    "expiry":"20230818",
                    "strike":"140.0",
                    "right":"CALL",
                    "dir":"Buy",
                    "volume":1700,
                    "price":3.25,
                    "amount":552500,
                    "tradeTime":"1687276467421"
                },
                {
                    "symbol":"AAPL",
                    "expiry":"20230915",
                    "strike":"185.0",
                    "right":"PUT",
                    "dir":"Sell",
                    "volume":1500,
                    "price":6.65,
                    "amount":997500,
                    "tradeTime":"1687276413267"
                },
                {
                    "symbol":"BABA",
                    "expiry":"20240119",
                    "strike":"75.0",
                    "right":"PUT",
                    "dir":"Sell",
                    "volume":1500,
                    "price":4.8,
                    "amount":720000,
                    "tradeTime":"1687276036749"
                }
                // ......
            ]
        }
    ]
}

订阅全量逐笔成交数据

subscribeTradeTick(Set<String> symbols)
取消方法
cancelSubscribeTradeTick(Set<String> symbols)

说明

订阅股票的全量逐笔成交数据。需要找管理员申请开通权限,区分之前的快照逐笔数据,需要在开通权限后,本地配置ClientConfig.DEFAULT_CONFIG.useFullTick = true; 逐笔成交订阅推送接口是异步接口,通过实现ApiComposeCallback接口可以获得异步请求结果。 回调接口返回结果类型为TickData对象。

支持美国和香港市场股票的订阅

请求参数

参数类型是否必填说明
symbolsSet<String>Yes股票代码列表

返回值

字段类型说明
idstringsdk订阅请求时本地生成的ID,序列递增。在subscribeEnd(int id, String subject, String result)回调方法中返回请求id和订阅是否成功的结果

订阅示例

Set<String> symbols = new HashSet<>();
//逐笔成交股票标的订阅
symbols.add("AAPL");
symbols.add("00700");

client.subscribeTradeTick(symbols);

//Wait to receive the data
TimeUnit.SECONDS.sleep(120000);
// Cancel subscription
client.cancelSubscribeTradeTick(symbols);

对应回调接口

void fullTickChange(TickData data)

TickData数据结构如下:

字段类型说明
symbolstring股票标的
timestamplong数据时间戳
ticksList<Tick>逐笔成交数据集合

ticks的数据结构如下:

字段类型说明
snlong逐笔序号
timelong交易时间戳
pricefloat成交价
volumelong成交量
typestring*表示中性,+表示主动买入,-表示主动卖出
condstring每笔数据的成交条件列表,如果数组为空表示当前批量的每笔都为自动对盘成交,可能为null
partCodestring每笔交易的交易所code(仅美股股票),可能为null

回调结果示例

{"symbol":"AAPL","ticks":[{"sn":"69745","time":"1712585464248","price":168.96,"volume":26,"type
":"+","partCode":"t"},{"sn":"69746","time":"1712585464248","price":168.96,"volume":22,"type":"+","partCode":"t"}],"timestamp":"1712585464415"
,"source":"NLS"}

订阅分钟K线数据

subscribeKline(Set<String> symbols)
取消方法
cancelSubscribeKline(Set<String> symbols)

说明

订阅股票的分钟K线数据,需要找管理员申请开通权限。 分钟K线订阅推送接口是异步接口,通过实现ApiComposeCallback接口可以获得异步请求结果。 回调接口返回结果类型为KlineData对象。

支持美国和香港市场股票的订阅

请求参数

参数类型是否必填说明
symbolsSet<String>Yes股票代码列表

返回值

字段类型说明
idstringsdk订阅请求时本地生成的ID,序列递增。在subscribeEnd(int id, String subject, String result)回调方法中返回请求id和订阅是否成功的结果

订阅示例

Set<String> symbols = new HashSet<>();
//分钟K线股票标的订阅
symbols.add("AAPL");
symbols.add("00700");

client.subscribeKline(symbols);

//Wait to receive the data
TimeUnit.SECONDS.sleep(120000);
// Cancel subscription
client.cancelSubscribeKline(symbols);

对应回调接口

void klineChange(KlineData data)

KlineData数据结构如下:

字段类型说明
timelong分钟时间戳
openfloat开始价
highfloat最高价
lowfloat最低价
closefloat最终价
avgfloat平均价
volumelong成交量
countint成交笔数
symbolstring股票标的
amountdouble成交金额
serverTimestamplong服务器推送时间戳

回调结果示例

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

查询已订阅的标的

getSubscribedSymbols()

说明

查询已经订阅过的标的信息

请求参数

订阅示例

client.getSubscribedSymbols();

对应回调接口

public void getSubscribedSymbolEnd(SubscribedSymbol subscribedSymbol) {
    System.out.println(JSONObject.toJSONString(subscribedSymbol));
}

回调数据结构如下:

字段类型说明
limitint订阅行情标的(股票、期权、期货)限制最大数
usedint已订阅行情标的(股票、期权、期货)数
subscribedSymbolsarray已订阅行情标的(股票、期权、期货)标的
askBidLimitint订阅深度行情股票限制最大数
askBidUsedint已订阅深度行情股票数
subscribedAskBidSymbolsarray已订阅深度行情股票标的
tradeTickLimitint订阅逐笔成交股票限制最大数
tradeTickUsedint已订阅逐笔成交股票数
subscribedTradeTickSymbolsarray已订阅逐笔成交股票标的

回调结果示例

{
    "askBidLimit":10,
    "askBidUsed":0,
    "limit":20,
    "subscribedAskBidSymbols":[

    ],
    "subscribedSymbols":[

    ],
    "subscribedTradeTickSymbols":[
        "PDD",
        "AMD",
        "SPY",
        "01810"
    ],
    "tradeTickLimit":20,
    "tradeTickUsed":4,
    "used":0
}

上次编辑于: