期权

大约 10 分钟

获取期权过期日

对应的请求类:OptionExpirationQueryRequest

说明

获取期权过期日,请求上限为30支股票

参数

参数类型是否必填描述
symbolsarrayYes股票代码列表,上限为:30

返回com.tigerbrokers.stock.openapi.client.https.response.option.OptionExpirationResponsesourceopen in new window

结构如下:

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过期时间,日期格式,如:2018-12-01
timestampsarray过期日期,时间戳格式,如:1544763600000(美国NewYork时间对应的时间戳)
periodTagsarray期权周期标签,m为月期权,w为周期权

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

示例

OptionExpirationResponse response = client.execute(new OptionExpirationQueryRequest(List.of("AAPL", "GOOG")));
if (response.isSuccess()) {
  System.out.println(JSONObject.toJSONString(response));
} else {
  System.out.println("response error:" + response.getMessage());
}

返回示例

{
	"code": 0,
	"data": [{
		"count": 22,
		"dates": ["2023-01-13", "2023-01-20", "2023-01-27", "2023-02-03", "2023-02-10", "2023-02-17", "2023-02-24", "2023-03-03", "2023-03-17", "2023-04-21", "2023-05-19", "2023-06-16", "2023-07-21", "2023-08-18", "2023-09-15", "2023-10-20", "2023-12-15", "2024-01-19", "2024-03-15", "2024-06-21", "2025-01-17", "2025-06-20"],
		"symbol": "AAPL",
		"timestamps": [1673586000000, 1674190800000, 1674795600000, 1675400400000, 1676005200000, 1676610000000, 1677214800000, 1677819600000, 1679025600000, 1682049600000, 1684468800000, 1686888000000, 1689912000000, 1692331200000, 1694750400000, 1697774400000, 1702616400000, 1705640400000, 1710475200000, 1718942400000, 1737090000000, 1750392000000]
	}, {
		"count": 16,
		"dates": ["2023-01-13", "2023-01-20", "2023-01-27", "2023-02-03", "2023-02-10", "2023-02-17", "2023-02-24", "2023-03-03", "2023-03-17", "2023-04-21", "2023-06-16", "2023-09-15", "2024-01-19", "2024-06-21", "2025-01-17", "2025-06-20"],
		"symbol": "GOOG",
		"timestamps": [1673586000000, 1674190800000, 1674795600000, 1675400400000, 1676005200000, 1676610000000, 1677214800000, 1677819600000, 1679025600000, 1682049600000, 1686888000000, 1694750400000, 1705640400000, 1718942400000, 1737090000000, 1750392000000]
	}],
	"message": "success",
	"sign": "VIXQAvI3HOpmEY2ZO+VO08ECVbKclsYtU980Euac240Bfd......",
	"success": true,
	"timestamp": 1673513141352
}

获取期权链

对应的请求类:OptionChainQueryV3Request

说明

获取期权链。返回的希腊字母不是最新数据,是上个交易日最后更新的数据,盘中可以用期权指标计算

参数

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

筛选参数:

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

返回com.tigerbrokers.stock.openapi.client.https.response.option.OptionChainResponsesourceopen in new window

结构如下:

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乘数,美股期权默认100
openInterestint未平仓量
preClosedouble前一交易日的收盘价
volumelong成交量
impliedVoldouble隐含波动率
deltadoubledelta
gammadoublegamma
thetadoubletheta
vegadoublevega
rhodoublerho

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

示例

OptionChainModel basicModel = new OptionChainModel("AAPL", "2023-06-30");
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)
);
OptionChainResponse response = client.execute(OptionChainQueryV3Request.of(basicModel, filterModel).setReturnGreekValue(Boolean.FALSE));
if (response.isSuccess()) {
  System.out.println(JSONObject.toJSONString(response));
} else {
  System.out.println("response error:" + response.getMessage());
}

返回示例

{
    "code":0,
    "data":[
        {
            "expiry":1688097600000,
            "items":[
                {
                    "call":{
                        "askPrice": 15.55,
                        "askSize": 1,
                        "bidPrice": 15.45,
                        "bidSize": 31,
                        "delta":0.586154,
                        "gamma":0.0267244,
                        "identifier":"AAPL  230630C00170000",
                        "impliedVol":0.269788,
                        "latestPrice":7.4,
                        "multiplier":100,
                        "openInterest":844,
                        "preClose":6.45,
                        "rho":0.0922716,
                        "right":"call",
                        "strike":"170.0",
                        "theta":-0.0906834,
                        "vega":0.210679,
                        "volume":0
                    }
                },
                {
                    "call":{
                        "askPrice": 10.6,
                        "askSize": 91,
                        "bidPrice": 10.5,
                        "bidSize": 31,
                        "delta":0.441268,
                        "gamma":0.0301519,
                        "identifier":"AAPL  230630C00175000",
                        "impliedVol":0.242371,
                        "latestPrice":4.35,
                        "multiplier":100,
                        "openInterest":1312,
                        "preClose":3.6,
                        "rho":0.070743,
                        "right":"call",
                        "strike":"175.0",
                        "theta":-0.0812508,
                        "vega":0.214568,
                        "volume":0
                    }
                },
                {
                    "call":{
                        "askPrice": 5.75,
                        "askSize": 42,
                        "bidPrice": 5.65,
                        "bidSize": 31,
                        "delta":0.282778,
                        "gamma":0.0283256,
                        "identifier":"AAPL  230630C00180000",
                        "impliedVol":0.221261,
                        "latestPrice":2.01,
                        "multiplier":100,
                        "openInterest":3402,
                        "preClose":1.65,
                        "rho":0.0460161,
                        "right":"call",
                        "strike":"180.0",
                        "theta":-0.062506,
                        "vega":0.187295,
                        "volume":0
                    }
                }
            ],
            "symbol":"AAPL"
        }
    ],
    "message":"success",
    "sign":"WAmfDX0fBA+PNVeLcrq8aB/p8OTJL9ATbwlLkRpL0KSyT60cYK8WePucYaaem17E7j3v/fsW4RSYm3xFGkGDcelLTCORZonA3jmbeGB9QY10sFuY02rhUUTivxxE4QYYv+ujC3EMF+aBfuDJjvjqXqlvcYE01HY48FhoTH1pfi8=",
    "success":true,
    "timestamp":1687856340521
}

获取期权行情摘要

对应的请求类:OptionBriefQueryRequest

说明

获取期权行情摘要。批量参数上限为30

参数

参数类型是否必填描述
symbolstringyes股票代码
rightstringyes看多或看空(CALL/PUT)
expirylongyes到期时间(美国NewYork时间当天0点所对应的毫秒值)
strikestringyes行权价

返回com.tigerbrokers.stock.openapi.client.https.request.option.OptionBriefResponsesourceopen in new window

结构如下:

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乘数,美股期权默认100
ratesBondsdouble一年期美国国债利率,每天更新一次,如:0.0078 表示实际利率为:0.78%
rightstring方向 (PUT/CALL)
volatilitystring历史波动率
expirylong到期时间(毫秒,当天0点)

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

示例

OptionCommonModel model = new OptionCommonModel();
model.setSymbol("AAPL");
model.setRight("CALL");
model.setStrike("160.0");
model.setExpiry("2021-12-03", TimeZoneId.NewYork);
OptionBriefResponse response = client.execute(OptionBriefQueryRequest.of(model));
if (response.isSuccess()) {
  System.out.println(JSONObject.toJSONString(response));
} else {
  System.out.println("response error:" + response.getMessage());
}

返回示例

{
  "code": 0,
  "data": [{
    "askPrice": 1.53,
    "askSize": 128,
    "bidPrice": 1.32,
    "bidSize": 1,
    "change": -2.52,
    "expiry": 1638507600000,
    "high": 3.12,
    "identifier": "AAPL  211203C00160000",
    "latestPrice": 1.35,
    "low": 1.25,
    "multiplier": 100,
    "open": 2.74,
    "openInterest": 79355,
    "preClose": 3.87,
    "ratesBonds": 0.002,
    "right": "call",
    "strike": "160.0",
    "symbol": "AAPL",
    "timestamp": 1637949599936,
    "volatility": "20.43%",
    "volume": 113452
  }],
  "message": "",
  "timestamp": 1543831981533
}

获取期权K线

对应的请求类:OptionKlineQueryRequest

说明

获取期权K线。批量参数上限为30

参数

参数类型是否必填描述
symbolstringyes股票代码
rightstringyes看多或看空(CALL/PUT)
expirylongyes到期时间(美国NewYork时间当天0点所对应的毫秒值)
strikestringyes行权价
begin_timelongyes开始时间(美国NewYork时间所对应的毫秒值)
end_timelongyes结束时间(美国NewYork时间所对应的毫秒值)
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.OptionKlineResponsesourceopen in new window

结构如下:

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行权价
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("PUT");
model.setStrike("150.0");
model.setExpiry("2023-04-14", TimeZoneId.NewYork);
model.setBeginTime("2023-03-21", TimeZoneId.NewYork);
model.setEndTime("2023-03-24", TimeZoneId.NewYork);
model.setPeriod(OptionKType.min60.getValue());

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

返回示例

{"code":0,"data":[{"expiry":1681444800000,"items":[{"close":2.0,"high":2.0,"low":2.0,"open":2.0,"time":1679340600000,"volume":0},{"close":1.86,"high":1.95,"low":1.66,"open":1.8,"time":1679405400000,"volume":183},{"close":1.76,"high":2.02,"low":1.74,"open":1.87,"time":1679409000000,"volume":104},{"close":1.68,"high":1.88,"low":1.67,"open":1.76,"time":1679412600000,"volume":43},{"close":1.53,"high":1.73,"low":1.48,"open":1.68,"time":1679416200000,"volume":175},{"close":1.52,"high":1.53,"low":1.44,"open":1.48,"time":1679419800000,"volume":276},{"close":1.47,"high":1.52,"low":1.41,"open":1.52,"time":1679423400000,"volume":21},{"close":1.35,"high":1.47,"low":1.34,"open":1.47,"time":1679427000000,"volume":119},{"close":1.15,"high":1.35,"low":1.15,"open":1.35,"time":1679491800000,"volume":148},{"close":1.15,"high":1.17,"low":1.12,"open":1.14,"time":1679495400000,"volume":93},{"close":1.23,"high":1.27,"low":1.1,"open":1.13,"time":1679499000000,"volume":62},{"close":1.25,"high":1.29,"low":1.23,"open":1.23,"time":1679502600000,"volume":33},{"close":1.02,"high":1.25,"low":0.96,"open":1.25,"time":1679506200000,"volume":323},{"close":1.12,"high":1.36,"low":0.85,"open":1.02,"time":1679509800000,"volume":180},{"close":1.6,"high":1.6,"low":1.12,"open":1.12,"time":1679513400000,"volume":86},{"close":1.06,"high":1.35,"low":1.06,"open":1.33,"time":1679578200000,"volume":75},{"close":1.02,"high":1.08,"low":0.9,"open":1.08,"time":1679581800000,"volume":127},{"close":1.04,"high":1.05,"low":0.99,"open":1.02,"time":1679585400000,"volume":71},{"close":1.22,"high":1.22,"low":1.01,"open":1.04,"time":1679589000000,"volume":96},{"close":1.48,"high":1.48,"low":1.17,"open":1.22,"time":1679592600000,"volume":33},{"close":1.61,"high":1.8,"low":1.37,"open":1.5,"time":1679596200000,"volume":255},{"close":1.6,"high":1.61,"low":1.6,"open":1.61,"time":1679599800000,"volume":8}],"period":"60min","right":"PUT","strike":"150.0","symbol":"AAPL"}],"message":"success","sign":"BPH1fQ5kt/N2SVuUa2FA+/bsvRzBtZySgefqJ3CdZe51Dyfrllg/9lPhNC9gXcEZidogIMJ7Bu5gYFyPqcfmW9xx0PtWzRxn53LC6hj1z5m0JvLVB9cBUM2S8Q92o3WWhFR+c8qrvQ0xzh8sRPJSHZIHqNWK0umjFSqy3Y1wvBo=","success":true,"timestamp":1679886982705}

获取期权逐笔成交

对应的请求类:OptionTradeTickQueryRequest

说明

获取期权逐笔成交数据。只支持美国市场期权,批量参数上限为30

参数

参数类型是否必填描述
symbolstringyes股票代码
rightstringyes看多或看空(call/put)
expirylongyes到期时间(美国NewYork时间当天0点所对应的毫秒值)
strikestringyes行权价

返回com.tigerbrokers.stock.openapi.client.https.response.option.OptionTradeTickResponsesourceopen in new window

结构如下:

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
}

期权指标计算

说明

计算所选期权的各类指标

参数

参数类型是否必填描述
clientobjectyesSDK Htttp client
symbolstringyes股票代码
rightstringyes看多或看空(CALL/PUT)
strikestringyes行权价
expirylongyes到期时间(美国NewYork时间当天0点所对应的毫秒值)
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%
}
上次编辑于: