期权


获取期权到期日

对应的请求类: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 筛选字段/模型,以及返回字段 deltagammathetavegarho 均已废弃。相关值每日更新,时效性不足以支持盘中使用,请勿用于实时交易决策。请使用期权指标计算,并传入当前市场输入进行计算。

说明

获取期权链。

参数

参数类型是否必填描述
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 中的 deltagammathetavegarho 均为 Range<Double>,分别通过同名的 (min, max) 方法设置,且均已废弃。

下文表格中的类型按 Java SDK 属性声明列出。DoubleIntegerLong 等包装类型能够在 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

具体字段可通过对象的 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最新成交时间的美东时间格式化字符串。响应未提供 latestTimetimestamp 有值时,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()方法转换为字符串

OptionDepthItemOptionDepthOrderBook 的数值属性在 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成交量
volumeDecimalDouble小数成交量
amountDouble成交额
turnoverRateDouble换手率
ttmPeDouble滚动市盈率
lyrPeDouble静态市盈率
openInterestInteger未平仓量(只有日 K 线有值),可为 null

表中类型按 Java SDK 属性声明列出。DoubleLongInteger 是包装类型,但 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市场,支持 HKUS,默认 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市场,支持 USHK,默认 US

单项参数(OptionAnalysisModel

参数类型是否必填描述
symbolstringYes标的代码(如 AAPL
periodString / OptionAnalysisPeriodNo分析周期;可选值为 3year52week26week13week,省略时使用 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?