期权


获取期权到期日

对应的请求类:OptionExpirationQueryRequest

说明

获取指定股票的期权到期日信息,批量请求单次最多 30 条。

参数

参数是否必填类型描述
symbolsYesarray股票代码列表,上限为:30
marketYesstringUS / HK 港股

返回
com.tigerbrokers.stock.openapi.client.https.response.option.OptionExpirationResponsesource

结构如下:

public class OptionExpirationResponse extends TigerResponse {
  @JSONField(name = "data")
  private List<OptionExpirationItem> optionExpirationItems;
}

返回数据可通过OptionExpirationResponse.getOptionExpirationItems()方法访问,返回OptionExpirationItem对象,其中com.tigerbrokers.stock.openapi.client.https.domain.option.item.OptionExpirationItem 属性如下:

名称类型说明
symbolstring股票代码
countint过期日期个数
datesarray过期时间,日期格式,如:2024-06-28
timestampsarray过期日期,时间戳格式,如:1544763600000(美国NewYork时间对应的时间戳)
periodTagsarray期权周期标签,m 为月期权,w 为周期权
optionSymbolsarray对应期权四要素的 symbol

具体字段可通过对象的 get 方法,如getSymbol()进行访问,或通过对象的toString()方法转换为字符串

示例

List<String> symbols = new ArrayList<>();
symbols.add("VIX");
OptionExpirationResponse response = client.execute(
        new OptionExpirationQueryRequest(symbols, Market.US));
// HK market opition. market parameter must be Market.HK
// symbols.add("PAI.HK");
// OptionExpirationResponse response = client.execute(
//        new OptionExpirationQueryRequest(symbols, Market.HK));
if (response.isSuccess()) {
  System.out.println(JSONObject.toJSONString(response));
} else {
  System.out.println("response error:" + response.getMessage());
}

返回示例

{
    "code": 0,
    "data": [
        {
            "count": 12,
            "dates": [
                "2024-12-24",
                "2024-12-31",
                "2025-01-08",
                "2025-01-15",
                "2025-01-22",
                "2025-02-19",
                "2025-03-18",
                "2025-04-16",
                "2025-05-21",
                "2025-06-18",
                "2025-07-16",
                "2025-08-20"
            ],
            "optionSymbols": [
                "VIXW",
                "VIXW",
                "VIXW",
                "VIXW",
                "VIX",
                "VIX",
                "VIX",
                "VIX",
                "VIX",
                "VIX",
                "VIX",
                "VIX"
            ],
            "periodTags": [
                "w",
                "q",
                "w",
                "w",
                "m",
                "m",
                "m",
                "m",
                "m",
                "m",
                "m",
                "m"
            ],
            "symbol": "VIX",
            "timestamps": [
                1735016400000,
                1735621200000,
                1736312400000,
                1736917200000,
                1737522000000,
                1739941200000,
                1742270400000,
                1744776000000,
                1747800000000,
                1750219200000,
                1752638400000,
                1755662400000
            ]
        }
    ],
    "message": "success",
    "sign": "jBxaUFSd6e1qIsEeb6l7/Wb8R7kMcNvvglzC6PsJpd7VMP12HKyKMJH8+4g1ePLyT/TzVhyJpCEpXcUAkGrg7hVMMhLoD397vW2Xf0VKedE5mKMy4I+yFK2PneZXr4xKyfCc/+Yb3dc//1gOEEvk9EQHjDzXp6bmy/dFD4020h0=",
    "success": true,
    "timestamp": 1735048291531
}

关于 标普 500 .SPX 的期权符号

月度期权符号是 SPX, 周期权和季度期权的符号都是 SPXW

请求频率

基础限流为 60 次/分钟。




获取期权链

对应的请求类:OptionChainQueryV3Request

⚠️

期权链 Greeks 已废弃

期权链请求中的 Greeks 返回开关、Greeks 筛选字段/模型,以及返回字段 delta、gamma、theta、vega、rho 均已废弃。相关值每日更新,时效性不足以支持盘中使用,请勿用于实时交易决策。请使用期权指标计算,并传入当前市场输入进行计算。

说明

获取期权链。

参数

参数类型是否必填描述
symbolstringYes股票代码,symbol 和 expiry 组合上限为:30
expiryStringYes期权过期日,示例:'2022-01-01'
marketstringYesUS/HK 港股

筛选参数:

参数类型是否必填描述
impliedVolatilityRange<Double>No隐含波动率区间,通过 impliedVolatility(min, max) 设置
inTheMoneyBooleanNo是否价内
openInterestRange<Integer>No未平仓量区间,通过 openInterest(min, max) 设置
greeksOptionChainFilterModel.GreeksNo已废弃。嵌套的 Greeks 区间筛选对象

OptionChainFilterModel.Greeks 中的 delta、gamma、theta、vega 和 rho 均为 Range<Double>,分别通过同名的 (min, max) 方法设置,且均已废弃。

下文表格中的类型按 Java SDK 属性声明列出。Double、Integer 和 Long 等包装类型能够在 Java 层承载 null,但不能仅据此推断各字段的业务可空性。

返回希腊值参数 setReturnGreekValue:已废弃,默认不返回。

OptionChainModel basicModel = new OptionChainModel(
    "AAPL", "2026-08-21", TimeZoneId.NewYork);
OptionChainQueryV3Request request = OptionChainQueryV3Request.of(
    basicModel, new OptionChainFilterModel(), Market.US);

返回
com.tigerbrokers.stock.openapi.client.https.response.option.OptionChainResponsesource

结构如下:

public class OptionChainResponse extends TigerResponse {

  @JSONField(name = "data")
  private List<OptionChainItem> optionChainItems;
}

返回数据可通过OptionChainResponse.getOptionChainItems()方法访问,返回OptionChainItem对象,其中com.tigerbrokers.stock.openapi.client.https.domain.option.item.OptionChainItem 属性如下:

名称类型说明
symbolstring标的股票代码
expiryLong期权过期日
itemsList<OptionRealTimeQuoteGroup>列表,包含 OptionRealTimeQuoteGroup 对象,保存期权链数据,说明见下文

OptionRealTimeQuoteGroup对象结构:

名称类型说明
putOptionRealTimeQuote看跌期权
callOptionRealTimeQuote看涨期权

OptionRealTimeQuote对象结构:

名称类型说明
identifierstring期权标识,如:AAPL 210115C00095000
strikeString行权价
rightstring期权方向,PUT/CALL
askPriceDouble卖盘价格
askSizeInteger卖盘数量
bidPriceDouble买盘价格
bidSizeInteger买盘数量
lastTimestampLong最新成交时间,如: 1543343800698
latestPriceDouble最新价
multiplierInteger乘数,US 期权默认 100
openInterestInteger未平仓量
preCloseDouble前一交易日的收盘价
volumeInteger成交量
impliedVolDouble隐含波动率
deltaDouble已废弃。期权链返回的 delta
gammaDouble已废弃。期权链返回的 gamma
thetaDouble已废弃。期权链返回的 theta
vegaDouble已废弃。期权链返回的 vega
rhoDouble已废弃。期权链返回的 rho
markPriceDouble标记价
preMarkPriceDouble昨标记价
markTimestampLong标记价时间戳(毫秒)
midPriceDouble中间价
preMidPriceDouble昨中间价
midTimestampLong中间价时间戳(毫秒)

具体字段可通过对象的 get 方法,如getSymbol()进行访问,或通过 json 方法转换为字符串。

示例

OptionChainModel basicModel = new OptionChainModel("AAPL", "2024-07-26",  TimeZoneId.NewYork);
OptionChainFilterModel filterModel = new OptionChainFilterModel()
  .inTheMoney(true)
  .impliedVolatility(0.1537, 0.8282)
  .openInterest(10, 50000);
OptionChainQueryV3Request request = OptionChainQueryV3Request.of(basicModel, filterModel, Market.US);

OptionChainResponse response = client.execute(request);
if (response.isSuccess()) {
  System.out.println(JSONObject.toJSONString(response));
} else {
  System.out.println("response error:" + response.getMessage());
}

返回示例

{
  "code": 0,
  "data": [
    {
      "expiry": 1721966400000,
      "items": [
        {
          "put": {
            "askPrice": 4.65,
            "askSize": 2,
            "bidPrice": 4.5,
            "bidSize": 66,
            "delta": -0.503388,
            "gamma": 0.037062,
            "identifier": "AAPL  240726P00210000",
            "impliedVol": 0.183129,
            "lastTimestamp": 1719345582586,
            "latestPrice": 4.6,
            "multiplier": 100,
            "openInterest": 1858,
            "preClose": 5.26,
            "rho": -0.072819,
            "right": "put",
            "strike": "210.0",
            "theta": -0.060326,
            "vega": 0.24135,
            "volume": 404
          }
        },
        {
          "put": {
            "askPrice": 7.75,
            "askSize": 59,
            "bidPrice": 7.4,
            "bidSize": 260,
            "delta": -0.686314,
            "gamma": 0.03523,
            "identifier": "AAPL  240726P00215000",
            "impliedVol": 0.18012,
            "lastTimestamp": 1719345365800,
            "latestPrice": 7.8,
            "multiplier": 100,
            "openInterest": 1222,
            "preClose": 8.5,
            "rho": -0.084955,
            "right": "put",
            "strike": "215.0",
            "theta": -0.048649,
            "vega": 0.21153,
            "volume": 134
          }
        }
      ],
      "symbol": "AAPL"
    }
  ],
  "message": "success",
  "sign": "dA0ngWPHWC0GOme2h0/FPma5UAcLSKiR5vWw9ldZ1wz8sHiRG7QMroO78JXqK5A+J3m6XWT9esAXagwbs8D6mI/3vhFU5QCJQbDd58lQRJRWeAK/G+7eQOwAQIqvgLttBtMBbRKlHMchhHATgUi9U7v/eu4NG5tDHr04InQy0cc=",
  "success": true,
  "timestamp": 1719407360986
}

请求频率

基础限流为 60 次/分钟。



获取期权实时行情

对应的请求类:OptionBriefQueryV2Request

说明

获取期权实时行情接口,使用该接口需购买相应行情权限,批量请求单次最多 30 条。

参数

参数类型是否必填描述
marketMarketYes市场,支持 US、HK
option_basicList<OptionCommonModel>Yes期权四要素列表,最大 30

OptionCommonModel参数结构如下

参数类型是否必填描述
symbolstringYes股票代码,港股请参考“获取港股期权名称”接口返回的 symbol
rightstringYes看多或看空(CALL/PUT)
expirylongYes到期时间
strikestringYes行权价(小数位须和期权链一致,否则可能无数据,1.美股至少 1 位小数,有 2 位小数的可能 2. 港股个股期权固定 2 位小数 3. 港股指数期权无小数位)

返回
com.tigerbrokers.stock.openapi.client.https.response.option.OptionBriefResponsesource

结构如下:

public class OptionBriefResponse extends TigerResponse {

  @JSONField(name = "data")
  private List<OptionBriefItem> optionBriefItems;
}

返回数据可通过OptionBriefResponse.getOptionBriefItems()方法访问,返回OptionBriefItem对象,其中com.tigerbrokers.stock.openapi.client.https.domain.option.item.OptionBriefItem 属性如下:

字段类型说明
identifierString期权标识
symbolString股票代码
strikestring行权价
bidPriceDouble买盘价格
bidSizeInteger买盘数量
askPriceDouble卖盘价格
askSizeInteger卖盘数量
latestPriceDouble最新价格
timestampLong最新成交时间
latestTimeString最新成交时间的美东时间格式化字符串。响应未提供 latestTime 但 timestamp 有值时,getLatestTime() 会据此生成;两者均无值时返回 null
volumeInteger成交量
highDouble最高价
lowDouble最低价
openDouble开盘价
preCloseDouble前一交易日收盘价
openInterestInteger未平仓量
changeDouble涨跌额
multiplierInteger乘数,us 期权默认 100
ratesBondsDouble一年期美国国债利率,每天更新一次,如:0.0078 表示实际利率为:0.78%
rightstring方向 (PUT/CALL)
volatilitystring历史波动率
expiryLong到期时间(毫秒,当天 0 点)
midPriceDouble中间价
midTimestampLong中间价时间戳
markPriceDouble标记价
markTimestampLong标记价时间戳
preMarkPriceDouble昨标记价
sellingReturnDouble卖出年化收益

具体字段可通过对象的 get 方法,如getSymbol()进行访问, 或通过对象的toString()方法转换为字符串

OptionBriefItem 的数值属性在 SDK 中声明为 Java 包装类型;SDK 未仅凭这些类型定义每个字段的业务可空条件。

示例

OptionCommonModel model = new OptionCommonModel();
model.setSymbol("TSLA");
model.setStrike("437.5");
model.setRight("PUT");
model.setExpiry("2026-01-30", TimeZoneId.NewYork);
List<OptionCommonModel> models = new ArrayList<>();
models.add(model);

OptionBriefQueryV2Request request = new OptionBriefQueryV2Request(models, Market.US);
OptionBriefResponse response = client.execute(request);
if (response.isSuccess()) {
   System.out.println(JSONObject.toJSONString(response));
} else {
   System.out.println("response error:" + response.getMessage());
}

返回示例

{
  "code" : 0,
  "message" : "success",
  "timestamp" : 1769061919677,
  "optionBriefItems" : [ {
    "lang" : null,
    "identifier" : "TSLA  260130P00437500",
    "symbol" : "TSLA",
    "strike" : "437.5",
    "bidPrice" : 17.45,
    "bidSize" : 10,
    "askPrice" : 17.65,
    "askSize" : 10,
    "latestPrice" : 17.6,
    "volume" : 967,
    "high" : 25.35,
    "low" : 14.5,
    "open" : 25.35,
    "preClose" : 25.44,
    "openInterest" : 679,
    "change" : -7.84,
    "multiplier" : 100,
    "right" : "put",
    "volatility" : "31.10%",
    "expiry" : 1769749200000,
    "ratesBonds" : 0.035227,
    "midPrice" : 17.55,
    "midTimestamp" : 1769029200460,
    "markPrice" : 17.6,
    "markTimestamp" : 1769029200460,
    "preMarkPrice" : 26.125,
    "sellingReturn" : 1.065105,
    "timestamp" : 1769028900019,
    "latestTime" : "2026-01-21 15:55:00.019",
    "account" : null
  } ],
  "success" : true
}

请求频率

基础限流为 120 次/分钟。



获取期权深度行情

对应的请求类:OptionDepthQueryRequest

说明

获取期权深度行情数据,支持美国和香港市场期权,批量请求单次最多 30 条。

参数

参数类型是否必填描述
marketMarketYes市场,US/HK
option_basicList<OptionCommonModel>Yes期权四要素列表,最大 30

OptionCommonModel参数结构如下

参数类型是否必填描述
symbolstringYes股票代码
rightstringYes看多或看空(CALL/PUT)
expirylongYes到期时间(当天 0 点所对应的毫秒值)
strikestringYes行权价(小数位须和期权链一致,否则可能无数据,1.美股至少 1 位小数,有 2 位小数的可能 2. 港股个股期权固定 2 位小数 3. 港股指数期权无小数位)

返回
com.tigerbrokers.stock.openapi.client.https.response.option.OptionDepthResponsesource

结构如下:

public class OptionDepthResponse extends TigerResponse {

  @JSONField(name = "data")
  private List<OptionDepthItem> optionDepthItems;
}

返回数据为盘中 17 个交易所的实时报价。 如果报价为 0 表示该交易所没有报价

返回数据可通过OptionDepthResponse.getOptionDepthItems()方法访问,返回OptionDepthItem对象列表,其中com.tigerbrokers.stock.openapi.client.https.domain.option.item.OptionDepthItem 属性如下:

名称类型说明
symbolstring标的股票代码
expiryLong到期时间
strikestringstrike price
rightstringPUT 或 CALL
timestampLong数据时间戳
askList<OptionDepthOrderBook>卖盘挂单数据
bidList<OptionDepthOrderBook>买盘挂单数据

OptionDepthOrderBook 对象结构如下:

名称类型说明
priceFloat委托价
codestring期权交易所 Code
timestampLong交易所时间
volumeInteger委托量
countInteger该价位委托笔数

具体字段可通过对象的 get 方法,如getSymbol()进行访问, 或通过对象的toString()方法转换为字符串

OptionDepthItem 和 OptionDepthOrderBook 的数值属性在 SDK 中声明为 Java 包装类型;SDK 未仅凭这些类型定义每个字段的业务可空条件。

示例

OptionCommonModel model = new OptionCommonModel();
model.setSymbol("AAPL");
model.setRight("PUT");
model.setStrike("210.0");
model.setExpiry("2024-06-28", TimeZoneId.NewYork);

OptionDepthQueryRequest request = OptionDepthQueryRequest.of(model).market(Market.US);
OptionDepthResponse response = client.execute(request);
if (response.isSuccess()) {
  System.out.println(JSONObject.toJSONString(response));
} else {
  System.out.println("response error:" + response.getMessage());
}

返回示例

{
	"code": 0,
	"data": [{
		"ask": [{
			"code": "CBOE",
			"price": 1.19,
			"volume": 10,
			"timestamp": 1718654399000
		},
		{
			"code": "BZX",
			"price": 1.19,
			"volume": 10,
			"timestamp": 1718654399000
		},
		{
			"code": "AMEX",
			"price": 1.19,
			"volume": 2,
			"timestamp": 1718654400000
		},
		{
			"code": "NSDQ",
			"price": 1.19,
			"volume": 2,
			"timestamp": 1718654399000
		},
		{
			"code": "BX",
			"price": 1.19,
			"volume": 2,
			"timestamp": 1718654399000
		},
		{
			"code": "PHLX",
			"price": 1.2,
			"volume": 54,
			"timestamp": 1718654399000
		},
		{
			"code": "BOX",
			"price": 1.2,
			"volume": 31,
			"timestamp": 1718654399000
		},
		{
			"code": "GEM",
			"price": 1.2,
			"volume": 24,
			"timestamp": 1718654399000
		},
		{
			"code": "MCRY",
			"price": 1.2,
			"volume": 24,
			"timestamp": 1718654399000
		},
		{
			"code": "MIAX",
			"price": 1.2,
			"volume": 24,
			"timestamp": 1718654399000
		},
		{
			"code": "EDGX",
			"price": 1.2,
			"volume": 23,
			"timestamp": 1718654399000
		},
		{
			"code": "EMLD",
			"price": 1.2,
			"volume": 18,
			"timestamp": 1718654399000
		},
		{
			"code": "ISE",
			"price": 1.2,
			"volume": 18,
			"timestamp": 1718654399000
		},
		{
			"code": "MPRL",
			"price": 1.2,
			"volume": 8,
			"timestamp": 1718654399000
		},
		{
			"code": "C2",
			"price": 1.2,
			"volume": 6,
			"timestamp": 1718654399000
		},
		{
			"code": "ARCA",
			"price": 1.2,
			"volume": 1,
			"timestamp": 1718654399000
		},
		{
			"code": "MEMX",
			"price": 0.0,
			"volume": 0,
			"timestamp": 1718654402000
		}],
		"bid": [{
			"code": "PHLX",
			"price": 1.12,
			"volume": 48,
			"timestamp": 1718654399000
		},
		{
			"code": "MIAX",
			"price": 1.12,
			"volume": 37,
			"timestamp": 1718654399000
		},
		{
			"code": "BX",
			"price": 1.12,
			"volume": 34,
			"timestamp": 1718654399000
		},
		{
			"code": "BOX",
			"price": 1.12,
			"volume": 32,
			"timestamp": 1718654399000
		},
		{
			"code": "CBOE",
			"price": 1.12,
			"volume": 29,
			"timestamp": 1718654399000
		},
		{
			"code": "MPRL",
			"price": 1.12,
			"volume": 22,
			"timestamp": 1718654399000
		},
		{
			"code": "GEM",
			"price": 1.12,
			"volume": 21,
			"timestamp": 1718654399000
		},
		{
			"code": "EDGX",
			"price": 1.12,
			"volume": 18,
			"timestamp": 1718654399000
		},
		{
			"code": "EMLD",
			"price": 1.12,
			"volume": 16,
			"timestamp": 1718654399000
		},
		{
			"code": "ISE",
			"price": 1.12,
			"volume": 15,
			"timestamp": 1718654399000
		},
		{
			"code": "C2",
			"price": 1.12,
			"volume": 10,
			"timestamp": 1718654399000
		},
		{
			"code": "BZX",
			"price": 1.12,
			"volume": 10,
			"timestamp": 1718654399000
		},
		{
			"code": "MCRY",
			"price": 1.12,
			"volume": 8,
			"timestamp": 1718654399000
		},
		{
			"code": "AMEX",
			"price": 1.12,
			"volume": 4,
			"timestamp": 1718654400000
		},
		{
			"code": "ARCA",
			"price": 1.12,
			"volume": 4,
			"timestamp": 1718654399000
		},
		{
			"code": "NSDQ",
			"price": 1.12,
			"volume": 4,
			"timestamp": 1718654399000
		},
		{
			"code": "MEMX",
			"price": 0.0,
			"volume": 0,
			"timestamp": 1718654402000
		}],
		"expiry": 1719547200000,
		"right": "PUT",
		"strike": "210.0",
		"timestamp": 1718654402000
	}],
	"message": "success",
	"sign": "tlxKbPzgJBN2Q2oUz8GBwpAJ/aUFlNrM3V/uh1fTWd2r3lHfD2TvTul/i6yBtvxR+G7gwfkpE7yoVVo74JacJPOA724zLdSkkHDuC5K2Q9WzIi/C1z0vdRZYtQSPpKsIrDSGc5g9D6m1IYz7HJNSeDa4a5WwyggDetNO86M1PeE=",
	"success": true,
	"timestamp": 1718712279180
}


获取期权逐笔成交

对应的请求类:OptionTradeTickQueryRequest

说明

获取期权逐笔成交数据,只支持美国市场期权,批量请求单次最多 30 条。

参数

参数类型是否必填描述
symbolstringYes股票代码
rightstringYes看多或看空(call/put)
expirylongYes到期时间(美国 NewYork 时间当天 0 点所对应的毫秒值)
strikestringYes行权价(小数位须和期权链一致,否则可能无数据,1.美股至少 1 位小数,有 2 位小数的可能 2. 港股个股期权固定 2 位小数 3. 港股指数期权无小数位)

返回
com.tigerbrokers.stock.openapi.client.https.response.option.OptionTradeTickResponsesource

结构如下:

public class OptionTradeTickResponse extends TigerResponse {

  @JSONField(name = "data")
  private List<OptionTradeTickItem> optionTradeTickItems;
}

开盘前半小时可以取到前一个交易日的全部,开盘后是新一天的数据。

返回数据可通过OptionTradeTickResponse.getOptionTradeTickItems()方法访问,返回OptionTradeTickItem对象列表,其中com.tigerbrokers.stock.openapi.client.https.domain.option.item.OptionTradeTickItem 属性如下:

名称类型说明
symbolstring标的股票代码
expiryLong到期时间
strikestringstrike price
rightstringPUT 或 CALL
itemsList<TradeTickPoint>TradeTickPoint 对象列表,每个 TradeTickPoint 对象对应单条逐笔成交数据

TradeTickPoint 对象结构如下:

名称类型说明
priceDouble成交价格
timeLong成交时间
volumeLong成交量

具体字段可通过对象的 get 方法,如getSymbol()进行访问, 或通过对象的toString()方法转换为字符串

示例

List<OptionCommonModel> modelList = new ArrayList<>();
OptionCommonModel model1 = new OptionCommonModel();
model1.setSymbol("AAPL");
model1.setRight("PUT");
model1.setStrike("185.0");
model1.setExpiry("2024-03-08", TimeZoneId.NewYork);
modelList.add(model1);

OptionCommonModel model2 = new OptionCommonModel();
model2.setSymbol("AAPL");
model2.setRight("CALL");
model2.setStrike("185.0");
model2.setExpiry("2024-03-08", TimeZoneId.NewYork);
modelList.add(model2);

OptionTradeTickResponse response = client.execute(OptionTradeTickQueryRequest.of(modelList));

if (response.isSuccess()) {
  System.out.println(JSONObject.toJSONString(response));
} else {
  System.out.println("response error:" + response.getMessage());
}

返回示例

{
	"code": 0,
	"data": [{
		"expiry": 1709874000000,
		"items": [{
			"price": 2.63,
			"time": 1708698601086,
			"volume": 4
		}, {
			"price": 2.62,
			"time": 1708698602594,
			"volume": 6
		}, {
			"price": 2.73,
			"time": 1708698606317,
			"volume": 4
		}, {
			"price": 2.72,
			"time": 1708698607576,
			"volume": 38
		}, {
			"price": 2.72,
			"time": 1708698610488,
			"volume": 7
		}],
		"right": "put",
		"strike": "185.0",
		"symbol": "AAPL"
	}, {
		"expiry": 1709874000000,
		"items": [{
			"price": 2.98,
			"time": 1708698600473,
			"volume": 1
		}, {
			"price": 2.98,
			"time": 1708698601051,
			"volume": 5
		}, {
			"price": 2.98,
			"time": 1708698601051,
			"volume": 23
		}, {
			"price": 2.98,
			"time": 1708698601051,
			"volume": 5
		}, {
			"price": 2.99,
			"time": 1708698601051,
			"volume": 11
		}],
		"right": "call",
		"strike": "185.0",
		"symbol": "AAPL"
	}],
	"message": "success",
	"success": true,
	"timestamp": 1708918385248
}

请求频率

基础限流为 120 次/分钟。


获取期权 K 线

对应的请求类:OptionKlineQueryV2Request

说明

获取期权 K 线,批量请求单次最多 30 条。

参数

参数类型是否必填描述
marketMarketYes市场,支持 US、HK
option_queryList<OptionKlineModel>Yes期权 K 线查询条件列表,最大 30

OptionKlineModel参数结构如下

参数类型是否必填描述
symbolstringYes股票代码
rightstringYes看多或看空(CALL/PUT)
expirylongYes到期时间
strikestringYes行权价(小数位须和期权链一致,否则可能无数据,1.美股至少 1 位小数,有 2 位小数的可能 2. 港股个股期权固定 2 位小数 3. 港股指数期权无小数位)
begin_timelongYes开始时间
end_timelongYes结束时间
periodstringNoK 线类型,取值范围(day:日K,1min:1分钟,5min:5分钟,30min:30分钟,60min:60分钟)
limitintNo分钟线返回最近记录数,默认 300,最大 1200。如果 limit 设置大于 1200,只会返回 1200 条数据。日 K 线暂不支持
sort_dirstringNo排序方向,包括:升序,降序,排序方向枚举:排序方向

返回
com.tigerbrokers.stock.openapi.client.https.response.option.OptionKlineResponsesource

结构如下:

public class OptionKlineResponse extends TigerResponse {

  @JSONField(name = "data")
  private List<OptionKlineItem> klineItems;
}

返回数据可通过OptionKlineResponse.getKlineItems()方法访问,返回OptionKlineItem对象,其中com.tigerbrokers.stock.openapi.client.https.domain.option.item.OptionKlineItem 属性如下:

名称类型说明
symbolstring股票代码
periodstring周期类型
rightstring看多或看空,取值 CALL/PUT
strikestring行权价(小数位须和期权链一致,否则可能无数据,1.美股至少 1 位小数,有 2 位小数的可能 2. 港股个股期权固定 2 位小数 3. 港股指数期权无小数位)
expiryLong到期时间,毫秒
itemsList<OptionKlinePoint>K 线列表,每个 OptionKlinePoint 表示一根 K 线,具体字段见下文

OptionKlinePoint 对象属性如下:

名称类型说明
highDouble最高价
lowDouble最低价
openDouble开盘价
closeDouble收盘价
timeLongK 线时间,毫秒时间戳
volumeLong成交量
amountDouble成交额
turnoverRateDouble换手率
ttmPeDouble滚动市盈率
lyrPeDouble静态市盈率
openInterestInteger未平仓量(只有日 K 线有值),可为 null

表中类型按 Java SDK 属性声明列出。Double、Long、Integer 是包装类型,但 SDK 未仅凭这些类型声明每个响应字段的业务可空性;已确认的适用条件在表中单独说明。

具体字段可通过对象的 get 方法,如getSymbol()进行访问, 或通过对象的toString()方法转换为字符串

示例

OptionKlineModel model = new OptionKlineModel();
model.setSymbol("AAPL");
model.setRight("CALL");
model.setStrike("170.0");
model.setExpiry("2024-06-28", TimeZoneId.NewYork);
model.setBeginTime("2024-06-26", TimeZoneId.NewYork);
model.setEndTime("2024-06-26 12:59:59", TimeZoneId.NewYork);

model.setPeriod(OptionKType.min1.getValue());
model.setLimit(10);
model.setSortDir(SortDir.SortDir_Descend);
OptionKlineQueryV2Request request = OptionKlineQueryV2Request.of(model).market(Market.US);

OptionKlineResponse response = client.execute(request);
if (response.isSuccess()) {
  System.out.println(JSONObject.toJSONString(response));
} else {
  System.out.println("response error:" + response.getMessage());
}

返回示例

{
    "code": 0,
    "data": [
        {
            "expiry": 1719547200000,
            "items": [
                {
                    "close": 43.13,
                    "high": 43.13,
                    "low": 43.13,
                    "open": 43.13,
                    "time": 1719419340000,
                    "volume": 0
                },
                {
                    "close": 43.13,
                    "high": 43.13,
                    "low": 43.13,
                    "open": 43.13,
                    "time": 1719419280000,
                    "volume": 0
                },
                {
                    "close": 43.13,
                    "high": 43.13,
                    "low": 43.13,
                    "open": 43.13,
                    "time": 1719419220000,
                    "volume": 0
                },
                {
                    "close": 43.13,
                    "high": 43.13,
                    "low": 43.13,
                    "open": 43.13,
                    "time": 1719419160000,
                    "volume": 0
                },
                {
                    "close": 43.13,
                    "high": 43.13,
                    "low": 43.13,
                    "open": 43.13,
                    "time": 1719419100000,
                    "volume": 0
                },
                {
                    "close": 43.13,
                    "high": 43.13,
                    "low": 43.13,
                    "open": 43.13,
                    "time": 1719419040000,
                    "volume": 0
                },
                {
                    "close": 43.13,
                    "high": 43.13,
                    "low": 43.13,
                    "open": 43.13,
                    "time": 1719418980000,
                    "volume": 0
                },
                {
                    "close": 43.13,
                    "high": 43.13,
                    "low": 43.13,
                    "open": 43.13,
                    "time": 1719418920000,
                    "volume": 0
                },
                {
                    "close": 43.13,
                    "high": 43.13,
                    "low": 43.13,
                    "open": 43.13,
                    "time": 1719418860000,
                    "volume": 0
                },
                {
                    "close": 43.13,
                    "high": 43.13,
                    "low": 43.13,
                    "open": 43.13,
                    "time": 1719418800000,
                    "volume": 0
                }
            ],
            "period": "1min",
            "right": "CALL",
            "strike": "170.0",
            "symbol": "AAPL"
        }
    ],
    "message": "success",
    "sign": "Hpb51+k2OzC8HmcstBV+bCLTbpflPKpR/AxXwCLd9nhhzuiZquPNGbNOhLYzzihJzRrmfCPWQeXM4ldMGLtbXUluLW79vcKBHdoPghENu+68Zod9dqzsH/InAXt444HOSsRXiubITZ+d9OWil+gvitjn9w7x4kn916KlT6R7hYg=",
    "success": true,
    "timestamp": 1719419362447
}

请求频率

基础限流为 60 次/分钟。



获取期权分时数据

对应的请求类:OptionTimelineRequest

说明

获取期权的分时数据。

参数

参数类型是否必填描述
optionTimelineModelsList<OptionTimelineModel>Yes期权列表
marketMarketNo市场,支持 HK、US,默认 HK

OptionTimelineModel参数结构如下:

参数类型是否必填描述
symbolstringYes股票代码
rightstringYes看多或看空(CALL/PUT)
expirylongYes到期时间
strikestringYes行权价(小数位须和期权链一致,否则可能无数据,1.美股至少 1 位小数,有 2 位小数的可能 2. 港股个股期权固定 2 位小数 3. 港股指数期权无小数位)
beginTimeLongNo分时数据开始时间,Unix 毫秒时间戳

返回

字段类型说明
symbolstring股票代码
rightstring看多或看空(CALL/PUT)
expiryLong到期时间
strikestring行权价
preCloseDouble昨日收盘价
openAndCloseTimeListList<List<Long>> 交易时间段列表
minutesList<OptionTimelinePoint>分时数组,字段参考下面说明

分时数据OptionTimelinePoint结构如下:

字段类型说明
volumeLong成交量
avgPriceDouble平均成交价格
priceDouble最新价格
timeLong当前分时时间

示例

OptionTimelineModel model1 = new OptionTimelineModel();
model1.setSymbol("ALB.HK");
model1.setExpiry(1753878054000L);
model1.setStrike("117.50");
model1.setRight("CALL");

OptionTimelineModel model2 = new OptionTimelineModel();
model2.setSymbol("LNI.HK");
model2.setExpiry(1753878054000L);
model2.setStrike("17.00");
model2.setRight("PUT");

OptionTimelineRequest request = OptionTimelineRequest.of(model1, model2);

OptionTimelineResponse response = client.execute(request);
if (response.isSuccess()) {
    System.out.println(JSONObject.toJSONString(response));
} else {
    System.out.println("response error:" + response.getMessage());
}

返回示例

{
  "code" : 0,
  "message" : "success",
  "timestamp" : 1750822293909,
  "sign" : "rEiaFf1LYv32Kbu8C+AKpJ/Y9pjrux8usbFA3FFJUEP28EXHv+PnKX9RBtVLalkyrULNqDqS29zP9hF1OZAng7U9KWFQ1Gy/FcGdbypXRNeJxPgKefHt/Fe4rLweO/eWKE41ZprPZlUZX0fxfeMwqkwcTMfhpuu+HQ2/ocmMgeg=",
  "timelineItems" : [ {
    "lang" : null,
    "symbol" : "ALB.HK",
    "expiry" : 1753878054000,
    "right" : "CALL",
    "strike" : "117.50",
    "preClose" : 2.72,
    "openAndCloseTimeList" : null,
    "minutes" : [{
      "price" : 3.4,
      "avgPrice" : 3.5235946,
      "time" : 1750822140000,
      "volume" : 29
    }, {
      "price" : 3.4,
      "avgPrice" : 3.5235946,
      "time" : 1750822200000,
      "volume" : 0
    }, {
      "price" : 3.4,
      "avgPrice" : 3.5235946,
      "time" : 1750822260000,
      "volume" : 0
    } ],
    "account" : null
  }, {
    "lang" : null,
    "symbol" : "LNI.HK",
    "expiry" : 1753878054000,
    "right" : "PUT",
    "strike" : "17.00",
    "preClose" : 1.28,
    "openAndCloseTimeList" : null,
    "minutes" : [ {
      "price" : 1.21,
      "avgPrice" : 1.21,
      "time" : 1750822140000,
      "volume" : 0
    }, {
      "price" : 1.21,
      "avgPrice" : 1.21,
      "time" : 1750822200000,
      "volume" : 0
    }, {
      "price" : 1.21,
      "avgPrice" : 1.21,
      "time" : 1750822260000,
      "volume" : 0
    } ],
    "account" : null
  } ],
  "success" : true
}


获取港股期权的代码

对应的请求类:OptionSymbolRequest

说明

获取港股期权的代码, 例如 00700 的代码为 TCH.HK。

参数

参数类型是否必填描述
marketMarketYes市场,只支持 HK
langstringNo语言支持: en_US,zh_CN,zh_TW,默认: en_US

返回
com.tigerbrokers.stock.openapi.client.https.response.option.OptionSymbolResponsesource

结构如下:

public class OptionSymbolResponse extends TigerResponse {

  @JSONField(name = "data")
  private List<OptionSymbolItem> symbolItems;
}

返回香港市场所有期权的 symbol 代码及底层资产标的集合

返回数据可通过OptionSymbolResponse.getSymbolItems()方法访问,返回OptionSymbolItem对象列表,其中com.tigerbrokers.stock.openapi.client.https.domain.option.item.OptionSymbolItem 属性如下:

名称类型说明
symbolstring期权四要素的 symbol
namestring标的名称
underlyingSymbolstring底层资产标的代码

具体字段可通过对象的 get 方法,如getSymbol()进行访问, 或通过对象的toString()方法转换为字符串

示例

OptionSymbolRequest request = OptionSymbolRequest.newRequest(Market.HK, Language.en_US);
OptionSymbolResponse response = client.execute(request);
if (response.isSuccess()) {
  System.out.println(JSONObject.toJSONString(response));
} else {
  System.out.println("response error:" + response.getMessage());
}

返回示例

{
  "code": 0,
  "data": [
    {
      "name": "ALC",
      "symbol": "ALC.HK",
      "underlyingSymbol": "02600"
    },
    {
      "name": "CRG",
      "symbol": "CRG.HK",
      "underlyingSymbol": "00390"
    }
  ],
  "message": "success",
  "sign": "NRvOxhF7cpEM9PS+Hofd6/BduEddep0sUlnYq9o9fPUwcZmAj3spI/D2wXu8L/eZSxvWhSfjnB3BL8y7mrpvqY3m9BGeZhf24ZoA0lbY8YXyQ5JjXa0VHWieUmCItoR9E195Nsr2sWCoawJhz7+yaMFioWEe8VThtGrYMiTYnUE=",
  "success": true,
  "timestamp": 1719401951582
}

期权指标计算

说明

计算所选期权的各类指标。

参数

参数类型是否必填描述
clientobjectYesSDK HTTP client
symbolstringYes股票代码
rightstringYes看多或看空(CALL/PUT)
strikestringYes行权价
expiryStringYes到期日期(格式:yyyy-MM-dd)
underlyingSymbolstringNo底层资产标的,默认为 symbol 的值

返回

名称类型说明
deltadouble期权理论价值对标的价格变化的敏感度
gammadoubledelta 对标的价格变化的敏感度
thetadouble期权理论价值对时间流逝的敏感度
vegadouble期权理论价值对隐含波动率变化的敏感度
rhodouble期权理论价值对无风险利率变化的敏感度
predictedValuedouble期权预测值;getOptionFundamentals 不设置该字段,因此保持 Java 默认值 0,仅在 calcOptionIndex 系列重载中有实际计算含义
insideValuedouble内在价值
timeValuedouble时间价值
leveragedouble杠杆率
openInterestdouble未平仓量
historyVolatilitydouble历史波动率,百分比数值
premiumRatedouble溢价率,百分比数值
profitRatedouble买入盈利率,百分比数值
volatilitydouble隐含波动率,百分比数值
metricParamString用于计算校验和调试的输入参数摘要

示例

OptionFundamentals optionFundamentals = OptionCalcUtils.getOptionFundamentals(client,"BABA", "CALL", "205.0", "2019-11-01");
System.out.println(JSONObject.toJSONString(optionFundamentals));

返回示例

{
	"delta": 0.8573062699731591,
	"gamma": 0.05151538284065261,
	"historyVolatility": 24.38,  //百分比形式,表示为 24.38%
	"insideValue": 4.550000000000011,
	"leverage": 30.695960907449216,
	"openInterest": 35417.0,
	"premiumRate": 0.18619306788885054, //百分比形式,表示为 0.186%
	"profitRate": 47.138051059662665, //百分比形式,表示为 47.138%
	"rho": 1.1107261502375654,
	"theta": -0.17927469728943862,
	"timeValue": 0.32499999999998863,
	"vega": 0.034473845504081974,
	"volatility": 28.62548828125  //百分比形式,表示为 28.62%
}


获取期权分析数据


对应的请求类:OptionAnalysisRequest

说明

查询期权分析数据。


参数

参数类型是否必填描述
symbolsList<OptionAnalysisModel>Yes期权分析查询项列表,最多 10 项
marketMarketNo市场,支持 US、HK,默认 US

单项参数(OptionAnalysisModel)

参数类型是否必填描述
symbolstringYes标的代码(如 AAPL)
periodString / OptionAnalysisPeriodNo分析周期;可选值为 3year、52week、26week、13week,省略时使用 52week
requireVolatilityListBooleanNo是否请求返回 volatilityList;只有 true 会请求该列表,省略或传 false 时不请求

返回

OptionAnalysisResponse

结构如下:

public class OptionAnalysisResponse extends TigerResponse {

  @JSONField(name = "data")
  private List<OptionAnalysisItem> optionAnalysisItems;
}

public class OptionAnalysisItem extends ApiModel {

  private String symbol;
  private Double impliedVol30Days;
  private Double hisVolatility;
  private Double ivHisVRatio;
  private Double callPutRatio;
  private ImpliedVolMetric impliedVolMetric;
  private List<VolatilityItem> volatilityList;
}

public class ImpliedVolMetric implements Serializable {


  private String period;
  private Double percentile;
  private Double rank;
}

public class VolatilityItem implements Serializable {

  private Double impliedVol;
  private Double percentile;
  private Double rank;
  private Double hisVolatility;
  private Long timestamp;
}

名称类型说明
impliedVol30Daysdouble标的资产的 30 日隐含波动率指标。
hisVolatilitydouble标的资产的历史波动率指标。
ivHisVRatiodouble隐含波动率与历史波动率的分析比率。
callPutRatiodoubleCall 与 Put 的分析比率。
percentiledouble所选分析周期内的隐含波动率百分位。
rankdouble所选分析周期内的隐含波动率排名。

VolatilityItem 对象结构(requireVolatilityList=true 时返回):

名称类型说明
impliedVolDouble隐含波动率
percentileDoubleIV 百分位
rankDoubleIV 排名
hisVolatilityDouble历史波动率
timestampLong时间戳,精确到毫秒

示例

List<OptionAnalysisModel> items = new ArrayList<>();
items.add(new OptionAnalysisModel("AAPL", OptionAnalysisPeriod.FIFTY_TWO_WEEK));
items.add(new OptionAnalysisModel("TSLA", OptionAnalysisPeriod.FIFTY_TWO_WEEK));
OptionAnalysisRequest request = OptionAnalysisRequest.newRequest(items, Market.US);
OptionAnalysisResponse response =
      client.execute(request);

// 返回波动率列表数据
OptionAnalysisRequest requestWithVolList =
      OptionAnalysisRequest.of("AAPL", OptionAnalysisPeriod.FIFTY_TWO_WEEK, true, Market.US);
OptionAnalysisResponse responseWithVolList =
      client.execute(requestWithVolList);

返回示例

{
  "code": 0,
  "message": "success",
  "timestamp": 1719401951582,
  "data": [
    {
      "callPutRatio": 0.6,
      "hisVolatility": 0.1967,
      "impliedVol30Days": 0.3071,
      "impliedVolMetric": {
        "percentile": 0.527363184079602,
        "period": "52week",
        "rank": 0.18213875790384876
      },
      "ivHisVRatio": 1.5617,
      "symbol": "AAPL"
    },
    {
      "callPutRatio": 0,
      "hisVolatility": 0.3603,
      "impliedVol30Days": 0.5162,
      "impliedVolMetric": {
        "percentile": 0.08,
        "period": "52week",
        "rank": 0.04194153521422974
      },
      "ivHisVRatio": 1.4328,
      "symbol": "TSLA"
    }
  ]
}

requireVolatilityList=true 时返回示例:

{
  "code": 0,
  "message": "success",
  "timestamp": 1719401951582,
  "data": [
    {
      "callPutRatio": 0.6,
      "hisVolatility": 0.1967,
      "impliedVol30Days": 0.3071,
      "impliedVolMetric": {
        "percentile": 0.527,
        "period": "52week",
        "rank": 0.182
      },
      "ivHisVRatio": 1.5617,
      "symbol": "AAPL",
      "volatilityList": [
        {"impliedVol": 0.3012, "percentile": 0.512, "rank": 0.175, "hisVolatility": 0.1923, "timestamp": 1709856000000},
        {"impliedVol": 0.2985, "percentile": 0.498, "rank": 0.168, "hisVolatility": 0.1901, "timestamp": 1709769600000}
      ]
    }
  ]
}

请求频率

基础限流为 60 次/分钟。


Did this page help you?