期权

获取期权到期日

对应的请求类: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



获取期权链

对应的请求类:OptionChainQueryV3Request

说明

获取期权链。注意:返回的希腊值并非实时数据,而是上一交易日收盘时的最后更新值,盘中可使用期权指标计算

参数

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

筛选参数:

参数类型是否必填描述
implied_volatilitydoubleNo隐含波动率
in_the_moneybooleanNo是否价内
open_interestintNo未平仓量
deltadoubleNodelta
gammadoubleNogamma
thetadoubleNotheta
vegadoubleNovega
rhodoubleNorho

返回希腊值参数:默认不返回

OptionChainQueryV3Request request  = null;
request.setReturnGreekValue(true);

返回 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
strikedouble行权价
rightstring期权方向,PUT/CALL
askPricedouble卖盘价格
askSizeint卖盘数量
bidPricedouble买盘价格
bidSizeint买盘数量
lastTimestamplong最新成交时间,如: 1543343800698
latestPricedouble最新价
multiplierdouble乘数,US 期权默认 100
openInterestint未平仓量
preClosedouble前一交易日的收盘价
volumelong成交量
impliedVoldouble隐含波动率
deltadoubledelta
gammadoublegamma
thetadoubletheta
vegadoublevega
rhodoublerho

具体字段可通过对象的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)
  .greeks(new OptionChainFilterModel.Greeks()
    .delta(-0.8, 0.6)
    .gamma(0.024, 0.30)
    .vega(0.019, 0.343)
    .theta(-0.1, 0.1)
    .rho(-0.096, 0.101)
);
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
}

获取期权实时行情

对应的请求类: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.request.option.OptionBriefResponsesource

结构如下:

public class OptionBriefResponse extends TigerResponse {

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

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

字段类型说明
symbolstring股票代码
strikestring行权价
bidPricedouble买盘价格
bidSizeint买盘数量
askPricedouble卖盘价格
askSizeint卖盘数量
latestPricedouble最新价格
timestamplong最新成交时间
volumeint成交量
highdouble最高价
lowdouble最低价
opendouble开盘价
preClosedouble前一交易日收盘价
openInterestint未平仓量
changedouble涨跌额
multiplierint乘数,us期权默认100
ratesBondsdouble一年期美国国债利率,每天更新一次,如:0.0078 表示实际利率为:0.78%
rightstring方向 (PUT/CALL)
volatilitystring历史波动率
expirylong到期时间(毫秒,当天 0 点)
midPricedouble中间价
midTimestamplong中间价时间戳
markPricedouble标记价
markTimestamplong标记价时间戳
preMarkPricedouble昨标记价
sellingReturndouble卖出年化收益

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

示例

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
}

获取期权深度行情

对应的请求类: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对象结构如下:

名称类型说明
pricedouble委托价
codestring期权交易所 Code
timestamplong交易所时间
volumeint委托量

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

示例

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
}

获取期权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.domain.option.item.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>包含OptionKlinePoint的List,OptionKlinePoint为k线数组,包含的具体数据见下文

OptionKlinePoint对象属性如下:

名称类型说明
highdouble最高价
lowdouble最低价
opendouble开盘价
closedouble收盘价
timelongk线时间
volumeint成交量
openInterestint未平仓量(只有日K线有值)

具体字段可通过对象的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
}

获取期权分时数据

对应的请求类:OptionTimelineRequest

说明

获取期权的分时数据。

参数

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

OptionTimelineModel参数结构如下:

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

返回

字段类型说明
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 Htttp client
symbolstringYes股票代码
rightstringYes看多或看空(CALL/PUT)
strikestringYes行权价
expirystringYes到期时间(格式:yyyy-MM-dd)
underlyingSymbolstringNo底层资产标的,默认为symbol的值

返回

名称类型说明
deltadouble希腊字母 delta
gammadouble希腊字母 gamma
thetadouble希腊字母 theta
vegadouble希腊字母 vega
insideValuedouble内在价值
timeValuedouble时间价值
leveragedouble杠杆率
openInterestint未平仓量
historyVolatilitydouble历史波动率,百分比数值
premiumRatedouble溢价率,百分比数值
profitRatedouble买入盈利率,百分比数值
volatilitydouble隐含波动率,百分比数值

示例

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期权分析查询项列表
marketMarketNo市场,默认 US

单项参数(OptionAnalysisModel

参数类型是否必填描述
symbolstringYes标的代码(如 AAPL
periodstringYes周期(如 52week,或 OptionAnalysisPeriod

** 返回 **

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;
}

public class ImpliedVolMetric implements Serializable {


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

名称

类型

说明

impliedVol30Days

double

标的资产的隐含波动率。 对期权链上部分期权的隐含波动率进行综合加权计算,得到的值即为该标的资产的 IV。它反映的是未来30天内期权链整体的波动情况,这个数据对正股也有参考作用。

hisVolatility

double

标的资产的历史波动率。 它反映的是过去30天内,标的资产的实际波动情况,用于衡量标的资产偏离其平均价格的程度。

ivHisVRatio

double

隐含波动率/历史波动率 比值

callPutRatio

double

Call/Put 比值

percentile

double

隐含波动率百分位。IV Percentile也是一个相对的指标, 统计过去一年内,有多少天的隐含波动率比现在低。计算公式:

IV Percentile = 1年内低于当前IV的天数/ 交易天数

IV Percentile的数值范围是在0%到100%之间波动; 当IV Percentile为0%时,表示过去1年内有0%的交易日的 IV 低于当前 IV; 当IV Percentile 为100%时,表示过去1年内有100%的交易日的 IV 低于当前 IV。

rank

double

隐含波动率排名。IV Rank 是一个相对的指标, 以该标的资产过去一年内的最高和最低IV值为标准,计算现在IV的相对位置。计算公式:

IV Rank = (当前IV - 1年内最低IV) / (1年内最高IV - 1年内最低IV)

IV Rank的数值范围是在0到1之间波动; 当IV Rank为0时,表示当前 IV处于近1年内的较低范围; 当IV Rank 为1时,表示当前IV处于近1年内较高范围


示例

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);

返回示例

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