Options
Get option expiration date
Corresponding request class: OptionExpirationQueryRequest
description
Get the option expiration date, the request limit is 30 stocks
parameter
parameter | type | required | description |
---|---|---|---|
symbols | array | Yes | A list of stock symbols, the upper limit is: 30 |
market | string | Yes | US,HK |
return
com.tigerbrokers.stock.openapi.client.https.response.option.OptionExpirationResponse
[source](https://github.com/tigerfintech/openapi-java-sdk/blob/master/src/main/java/com /tigerbrokers/stock/openapi/client/https/response/option/OptionExpirationResponse.java)
The structure is as follows:
public class OptionExpirationResponse extends TigerResponse {
@JSONField(name = "data")
private List<OptionExpirationItem> optionExpirationItems;
}
The returned data can be accessed through the OptionExpirationResponse.getOptionExpirationItems()
method, which returns the OptionExpirationItem
object, where com.tigerbrokers.stock.openapi.client.https.domain.option.item.OptionExpirationItem
properties are as follows:
name | type | description |
---|---|---|
symbol | string | stock code |
count | int | expiration date number |
dates | array | expiration time, date format, such as: 2024-06-28 |
timestamps | array | expiration date, timestamp format, such as: 1544763600000 (timestamp corresponding to New York time in the United States) |
periodTags | array | Option period tag, "m" is the monthly option, "w" is the weekly option |
Specific fields can be accessed through the get method of the object, such as getSymbol()
, or converted to a string by the toString()
method of the object
example
List<String> symbols = new ArrayList<>();
symbols.add("AAPL");
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());
}
response
{
"code": 0,
"data": [
{
"count": 19,
"dates": [
"2024-06-28",
"2024-07-05",
"2024-07-12",
"2024-07-19",
"2024-07-26",
"2024-08-02",
"2024-08-16",
"2024-09-20",
"2024-10-18",
"2024-11-15",
"2024-12-20",
"2025-01-17",
"2025-03-21",
"2025-06-20",
"2025-09-19",
"2025-12-19",
"2026-01-16",
"2026-06-18",
"2026-12-18"
],
"periodTags": [
"w",
"w",
"w",
"m",
"w",
"w",
"m",
"m",
"m",
"m",
"m",
"m",
"m",
"m",
"m",
"m",
"m",
"w",
"m"
],
"symbol": "AAPL",
"timestamps": [
1719547200000,
1720152000000,
1720756800000,
1721361600000,
1721966400000,
1722571200000,
1723780800000,
1726804800000,
1729224000000,
1731646800000,
1734670800000,
1737090000000,
1742529600000,
1750392000000,
1758254400000,
1766120400000,
1768539600000,
1781755200000,
1797570000000
]
}
],
"message": "success",
"sign": "gfb9aJczS42KWYQGV6H/6mrB2EIBI5B4QJ9Mf1bMqFKh29hKPwwnsBOJEssA4j6Vt3zToJi4bbbYr/d1OC3NMSoGy+vXxhVIFTkJ/jJfowTChtmobSVEL/8cibDp0+MjOBjpF58qNjbd678PKGTXLJFATdNj/0sCGh5hdFrOmiQ=",
"success": true,
"timestamp": 1719405255933
}
Get option chain
Corresponding request class: OptionChainQueryV3Request
description
Get option chain. The returned Greek letters are the last updated data of the previous trading day, and you can use Option indicator calculation to calculate the latest value in the intraday
parameter
parameter | type | required | description |
---|---|---|---|
symbol | string | Yes | Stock code, the maximum combination of symbol and expiry is: 30 |
expiry | String | Yes | Option expiration date, example: '2022-01-01' |
market | string | Yes | US, HK |
Filter parameters:
parameter | type | required | description |
---|---|---|---|
implied_volatility | double | No | implied volatility |
in_the_money | boolean | No | whether in the money |
open_interest | int | No | open interest |
delta | double | No | delta |
gamma | double | No | gamma |
theta | double | No | theta |
vega | double | No | vega |
rho | double | No | rho |
return
com.tigerbrokers.stock.openapi.client.https.response.option.OptionChainResponse
[source](https://github.com/tigerfintech/openapi-java-sdk/blob/master/src/main/java/com /tigerbrokers/stock/openapi/client/https/response/option/OptionChainResponse.java)
The structure is as follows:
public class OptionChainResponse extends TigerResponse {
@JSONField(name = "data")
private List<OptionChainItem> optionChainItems;
}
The returned data can be accessed through the OptionChainResponse.getOptionChainItems()
method, which returns the OptionChainItem
object, where com.tigerbrokers.stock.openapi.client.https.domain.option.item.OptionChainItem
properties are as follows:
name | type | description |
---|---|---|
symbol | string | underlying stock code |
expiry | long | option expiration date |
items | List<OptionRealTimeQuoteGroup> | list, including OptionRealTimeQuoteGroup objects, saving option chain data, see below for description |
OptionRealTimeQuoteGroup
object structure:
name | type | description |
---|---|---|
put | OptionRealTimeQuote | put option contract |
call | OptionRealTimeQuote | Call option contract |
OptionRealTimeQuote
object structure:
name | type | description |
---|---|---|
identifier | string | option identifier, such as: AAPL 210115C00095000 |
strike | double | strike price |
right | string | option direction PUT/CALL |
askPrice | double | ask price |
askSize | int | ask size |
bidPrice | double | bid price |
bidSize | int | number of bids |
lastTimestamp | long | The latest transaction time such as: 1543343800698 |
latestPrice | double | latest price |
multiplier | double | multiplier, US stock options default 100 |
openInterest | int | open interest |
preClose | double | The closing price of the previous trading day |
volume | long | volume |
impliedVol | double | implied volatility |
delta | double | delta |
gamma | double | gamma |
theta | double | theta |
vega | double | vega |
rho | double | rho |
Specific fields can be accessed through the get method of the object, such as getSymbol()
, or converted to a string by the toString()
method of the object example
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());
}
response
{
"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
}
Get option market summary
Corresponding request class: OptionBriefQueryV2Request
description
Get Options Quote Summary.The parameter batch limit is 30
parameter
parameter | type | required | description |
---|---|---|---|
market | string | yes | US only |
option_basic | List<OptionCommonModel> | yes | List of the four elements of options. max size is 30 |
OptionCommonModel
's structure is as follows:
parameter | type | required | description |
---|---|---|---|
symbol | string | yes | stock code |
right | string | yes | Long or short (CALL/PUT) |
expiry | long | yes | expiry time |
strike | string | yes | strike price |
return
com.tigerbrokers.stock.openapi.client.https.request.option.OptionBriefResponse
[source](https://github.com/tigerfintech/openapi-java-sdk/blob/master/src/main/java/com /tigerbrokers/stock/openapi/client/https/response/option/OptionBriefResponse.java)
The structure is as follows:
public class OptionBriefResponse extends TigerResponse {
@JSONField(name = "data")
private List<OptionBriefItem> optionBriefItems;
}
The returned data can be accessed through the TigerResponse.getOptionBriefItems()
method, which returns an OptionBriefItem
object, where the properties of com.tigerbrokers.stock.openapi.client.https.domain.option.item.OptionBriefItem
are as follows:
field | type | description |
---|---|---|
symbol | string | stock code |
strike | string | strike price |
bidPrice | double | bid price |
bidSize | int | number of bids |
askPrice | double | ask price |
askSize | int | ask size |
latestPrice | double | latest price |
timestamp | long | latest transaction time |
volume | int | volume |
high | double | highest price |
low | double | lowest price |
open | double | opening price |
preClose | double | The closing price of the previous trading day |
openInterest | int | open interest |
change | double | change amount |
multiplier | int | multiplier, US stock options default 100 |
ratesBonds | double | One-year U.S. Treasury bond rate, updated once a day, such as: 0.0078 means the actual interest rate is: 0.78% |
right | string | direction (PUT/CALL) |
volatility | string | historical volatility |
expiry | long | expiry time (milliseconds, 0:00 of the day) |
Specific fields can be accessed through the get method of the object, such as getSymbol()
, or converted to a string by the toString()
method of the object
example
OptionCommonModel model = new OptionCommonModel();
model.setSymbol("BRK.B");
model.setRight("CALL");
model.setStrike("400.0");
model.setExpiry("2024-06-28", 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());
}
response
{
"code": 0,
"data": [
{
"askPrice": 10.65,
"askSize": 29,
"bidPrice": 7.7,
"bidSize": 32,
"change": 0,
"expiry": 1719547200000,
"high": 14.1,
"identifier": "BRKB 240628C00400000",
"latestPrice": 14.1,
"low": 14.1,
"multiplier": 100,
"open": 14.1,
"openInterest": 28,
"preClose": 14.1,
"ratesBonds": 0.051339,
"right": "call",
"strike": "400.0",
"symbol": "BRK.B",
"volatility": "0.00%",
"volume": 0
}
],
"message": "success",
"sign": "QIP1Jd9BraCJLMhGxKn3mpefuMA6USHdb9K6iibwBZFBnBNSrsmuMnkpzdA0aF+yj7urKFXm/m2Uwvd8kVJLJVi/ExKlHJV6EojVPw8OaZgEwNh7pe+7/thRBorPRYNZgSA0mBTCi9Ud6aSIhYgeLcTWLMci4++T+D8rWtIApxU=",
"success": true,
"timestamp": 1719416337924
}
Get option K-line
Corresponding request class: OptionKlineQueryV2Request
description
Get option candlestick.The parameter batch limit is 30
parameter
parameter | type | required | description |
---|---|---|---|
market | string | yes | US, HK only |
option_query | List<OptionKlineModel> | yes | the list of the Option K-line query condition. max size is 30 |
OptionKlineModel
's structure is as follows:
parameter | type | required | description |
---|---|---|---|
symbol | string | yes | stock code |
right | string | yes | Long or short (CALL/PUT) |
expiry | long | yes | expiry time |
strike | string | yes | strike price |
begin_time | long | yes | start time |
end_time | long | yes | end time |
period | string | no | K line type, value range (day: day K, 1min: 1 minute, 5min: 5 minutes, 30min: 30 minutes, 60min: 60 minutes) |
limit | int | no | The minute line returns the number of recent records, the default is 300, and the maximum is 1200. If the limit setting is greater than 1200, only 1200 pieces of data will be returned. The daily K-line is not currently supported |
sort_dir | string | no | Sort Direction, include SortDir_Ascend and SortDir_Descend, enum:sort direction |
return
com.tigerbrokers.stock.openapi.client.https.domain.option.item.OptionKlineResponse
[source](https://github.com/tigerfintech/openapi-java-sdk/blob/master/src/main/java /com/tigerbrokers/stock/openapi/client/https/response/option/OptionKlineResponse.java)
The structure is as follows:
public class OptionKlineResponse extends TigerResponse {
@JSONField(name = "data")
private List<OptionKlineItem> klineItems;
}
The returned data can be accessed through the OptionKlineResponse.getKlineItems()
method, which returns the OptionKlineItem
object, where com.tigerbrokers.stock.openapi.client.https.domain.option.item.OptionKlineItem
properties are as follows:
name | type | description |
---|---|---|
symbol | string | stock code |
period | string | period type |
right | string | Look long or short, value CALL/PUT |
strike | string | strike price |
expiry | long | expiry time, milliseconds |
items | List<OptionKlinePoint> | Contains the List of OptionKlinePoint, OptionKlinePoint is an array of k-lines, the specific data contained in it is shown below |
OptionKlinePoint object properties are as follows:
name | type | description |
---|---|---|
high | double | highest price |
low | double | lowest price |
open | double | opening price |
close | double | closing price |
time | long | k-line time |
volume | int | volume |
openInterest | int | open interest (only daily K-line has value) |
Specific fields can be accessed through the get method of the object, such as getSymbol()
, or converted to a string by the toString()
method of the object
example
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());
}
response
{
"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
}
Obtain option transaction by transaction
Corresponding request class: OptionTradeTickQueryRequest
illustrate
Obtain tick-by-tick transaction data of options.The parameter batch limit is 30
parameter
parameter | type | required | description |
---|---|---|---|
symbol | string | yes | stock code |
right | string | yes | Look long or short (call/put) |
expiry | long | yes | expiry time (the value in milliseconds corresponding to 0:00 of New York time in the United States) |
strike | string | yes | strike price |
return
com.tigerbrokers.stock.openapi.client.https.response.option.OptionTradeTickResponse
[source](https://github.com/tigerfintech/openapi-java-sdk/blob/master/src/main/java/com /tigerbrokers/stock/openapi/client/https/response/option/OptionTradeTickResponse.java)
The structure is as follows:
public class OptionTradeTickResponse extends TigerResponse {
@JSONField(name = "data")
private List<OptionTradeTickItem> optionTradeTickItems;
}
Half an hour before the market opens, you can get all the data of the previous trading day, and after the market opens, you can get the data of the new day.
The returned data can be accessed through the OptionTradeTickResponse.getOptionTradeTickItems()
method, which returns a list of OptionTradeTickItem
objects, where com.tigerbrokers.stock.openapi.client.https.domain.option.item.OptionTradeTickItem
properties are as follows:
name | type | description |
---|---|---|
symbol | string | underlying stock code |
expiry | long | expiry time |
strike | string | strike price |
right | string | PUT or CALL |
items | List<TradeTickPoint> | TradeTickPoint object list, each TradeTickPoint object corresponds to a single transaction data |
The TradeTickPoint object structure is as follows:
name | type | description |
---|---|---|
price | double | transaction price |
time | long | transaction time |
volume | long | volume |
Specific fields can be accessed through the get method of the object, such as getSymbol()
, or converted to a string by the toString()
method of the object
example
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());
}
response
{
"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
}
Get option depth quote
Corresponding request class: OptionDepthQueryRequest
illustrate
Get depth data of options.The parameter batch limit is 30
parameter
parameter | type | required | description |
---|---|---|---|
market | string | yes | US only |
option_basic | List<OptionCommonModel> | yes | List of the four elements of options. max size is 30 |
OptionCommonModel
's structure is as follows:
parameter | type | required | description |
---|---|---|---|
symbol | string | yes | stock code |
right | string | yes | Look long or short (CALL/PUT) |
expiry | long | yes | expiry time (the value in milliseconds corresponding to 0:00 of New York time in the United States) |
strike | string | yes | strike price |
return
com.tigerbrokers.stock.openapi.client.https.response.option.OptionDepthResponse
[source](https://github.com/tigerfintech/openapi-java-sdk/blob/master/src/main/java/com /tigerbrokers/stock/openapi/client/https/response/option/OptionDepthResponse.java)
The structure is as follows:
public class OptionDepthResponse extends TigerResponse {
@JSONField(name = "data")
private List<OptionDepthItem> optionDepthItems;
}
The returned data is the real-time quotes of 17 options exchanges during the trading session.
The returned data can be accessed through the OptionDepthResponse.getOptionDepthItems()
method, which returns a list of OptionDepthItem
objects, where com.tigerbrokers.stock.openapi.client.https.domain.option.item.OptionDepthItem
properties are as follows:
name | type | description |
---|---|---|
symbol | string | underlying stock code |
expiry | long | expiry time |
strike | string | strike price |
right | string | PUT or CALL |
timestamp | long | data timestamp |
ask | List<OptionDepthOrderBook> | OptionDepthOrderBook object list, each OptionDepthOrderBook object corresponds to a ask order data from options exchange |
bid | List<OptionDepthOrderBook> | OptionDepthOrderBook object list, each OptionDepthOrderBook object corresponds to a bid order data from options exchange |
The OptionDepthOrderBook object structure is as follows:
name | type | description |
---|---|---|
price | double | order price |
code | string | Options Exchange Code |
timestamp | long | exchange timestamp |
volume | int | order volume |
Specific fields can be accessed through the get method of the object, such as getSymbol()
, or converted to a string by the toString()
method of the object
example
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());
}
response
{
"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
}
Get HK option symbol
Corresponding request class: OptionSymbolRequest
illustrate
Get the symbol list of Hong Kong stock options. Only supports Hong Kong market
parameter
parameter | type | required | description |
---|---|---|---|
market | string | yes | HK only |
lang | string | No | Language: zh_CN,zh_TW,en_US. en_US by default |
return
com.tigerbrokers.stock.openapi.client.https.response.option.OptionSymbolResponse
[source](https://github.com/tigerfintech/openapi-java-sdk/blob/master/src/main/java/com /tigerbrokers/stock/openapi/client/https/response/option/OptionSymbolResponse.java)
The structure is as follows:
public class OptionSymbolResponse extends TigerResponse {
@JSONField(name = "data")
private List<OptionSymbolItem> symbolItems;
}
Returns the symbol codes and underlying symbol codes of all options in the Hong Kong market
The returned data can be accessed through the OptionSymbolResponse.getSymbolItems()
method, which returns a list of OptionSymbolItem
objects, where com.tigerbrokers.stock.openapi.client.https.domain.option.item.OptionSymbolItem
properties are as follows:
name | type | description |
---|---|---|
symbol | string | option symbol |
name | string | name |
underlyingSymbol | string | underlying stock code |
Specific fields can be accessed through the get method of the object, such as getSymbol()
, or converted to a string by the toString()
method of the object
example
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());
}
response
{"code":0,"data":[{"name":"ALC","symbol":"ALC.HK","underlyingSymbol":"02600"},{"name":"CRG","symbol":"CRG.HK","underlyingSymbol":"00390"},{"name":"PAI","symbol":"PAI.HK","underlyingSymbol":"02318"},{"name":"XCC","symbol":"XCC.HK","underlyingSymbol":"00939"},{"name":"XTW","symbol":"XTW.HK","underlyingSymbol":"00788"},{"name":"SHL","symbol":"SHL.HK","underlyingSymbol":"00968"},{"name":"GHL","symbol":"GHL.HK","underlyingSymbol":"00868"},{"name":"HEX","symbol":"HEX.HK","underlyingSymbol":"00388"},{"name":"ACC","symbol":"ACC.HK","underlyingSymbol":"00914"},{"name":"STC","symbol":"STC.HK","underlyingSymbol":"02888"},{"name":"VNK","symbol":"VNK.HK","underlyingSymbol":"02202"},{"name":"CLI","symbol":"CLI.HK","underlyingSymbol":"02628"},{"name":"LNK","symbol":"LNK.HK","underlyingSymbol":"00823"},{"name":"SMC","symbol":"SMC.HK","underlyingSymbol":"00981"},{"name":"BEA","symbol":"BEA.HK","underlyingSymbol":"00023"},{"name":"TRP","symbol":"TRP.HK","underlyingSymbol":"09961"},{"name":"GWM","symbol":"GWM.HK","underlyingSymbol":"02333"},{"name":"NBM","symbol":"NBM.HK","underlyingSymbol":"03323"},{"name":"ANA","symbol":"ANA.HK","underlyingSymbol":"02020"},{"name":"CMB","symbol":"CMB.HK","underlyingSymbol":"03968"},{"name":"HNP","symbol":"HNP.HK","underlyingSymbol":"00902"},{"name":"HEH","symbol":"HEH.HK","underlyingSymbol":"00006"},{"name":"MET","symbol":"MET.HK","underlyingSymbol":"03690"},{"name":"SHZ","symbol":"SHZ.HK","underlyingSymbol":"02313"},{"name":"SNP","symbol":"SNP.HK","underlyingSymbol":"01099"},{"name":"INB","symbol":"INB.HK","underlyingSymbol":"01801"},{"name":"CRL","symbol":"CRL.HK","underlyingSymbol":"01109"},{"name":"ALH","symbol":"ALH.HK","underlyingSymbol":"00241"},{"name":"AAC","symbol":"AAC.HK","underlyingSymbol":"02018"},{"name":"WWC","symbol":"WWC.HK","underlyingSymbol":"00151"},{"name":"CTB","symbol":"CTB.HK","underlyingSymbol":"00998"},{"name":"NWD","symbol":"NWD.HK","underlyingSymbol":"00017"},{"name":"HSB","symbol":"HSB.HK","underlyingSymbol":"00011"},{"name":"LEN","symbol":"LEN.HK","underlyingSymbol":"00992"},{"name":"COS","symbol":"COS.HK","underlyingSymbol":"01919"},{"name":"HDO","symbol":"HDO.HK","underlyingSymbol":"06862"},{"name":"BOC","symbol":"BOC.HK","underlyingSymbol":"02388"},{"name":"CSA","symbol":"CSA.HK","underlyingSymbol":"02822"},{"name":"XAB","symbol":"XAB.HK","underlyingSymbol":"01288"},{"name":"CKH","symbol":"CKH.HK","underlyingSymbol":"00001"},{"name":"MIU","symbol":"MIU.HK","underlyingSymbol":"01810"},{"name":"AIR","symbol":"AIR.HK","underlyingSymbol":"00753"},{"name":"CKP","symbol":"CKP.HK","underlyingSymbol":"01113"},{"name":"CHU","symbol":"CHU.HK","underlyingSymbol":"00762"},{"name":"GLI","symbol":"GLI.HK","underlyingSymbol":"01772"},{"name":"LNI","symbol":"LNI.HK","underlyingSymbol":"02331"},{"name":"LAU","symbol":"LAU.HK","underlyingSymbol":"02015"},{"name":"BYD","symbol":"BYD.HK","underlyingSymbol":"01211"},{"name":"ZSH","symbol":"ZSH.HK","underlyingSymbol":"00881"},{"name":"CGN","symbol":"CGN.HK","underlyingSymbol":"01816"},{"name":"MOL","symbol":"MOL.HK","underlyingSymbol":"03993"},{"name":"CPA","symbol":"CPA.HK","underlyingSymbol":"00293"},{"name":"KLE","symbol":"KLE.HK","underlyingSymbol":"00135"},{"name":"CPI","symbol":"CPI.HK","underlyingSymbol":"02601"},{"name":"CTC","symbol":"CTC.HK","underlyingSymbol":"00728"},{"name":"MTR","symbol":"MTR.HK","underlyingSymbol":"00066"},{"name":"PEC","symbol":"PEC.HK","underlyingSymbol":"00857"},{"name":"PEN","symbol":"PEN.HK","underlyingSymbol":"09868"},{"name":"MEN","symbol":"MEN.HK","underlyingSymbol":"02319"},{"name":"TCH","symbol":"TCH.HK","underlyingSymbol":"00700"},{"name":"SUN","symbol":"SUN.HK","underlyingSymbol":"01918"},{"name":"PHT","symbol":"PHT.HK","underlyingSymbol":"01833"},{"name":"CTS","symbol":"CTS.HK","underlyingSymbol":"06030"},{"name":"BCM","symbol":"BCM.HK","underlyingSymbol":"03328"},{"name":"A50","symbol":"A50.HK","underlyingSymbol":"02823"},{"name":"RFP","symbol":"RFP.HK","underlyingSymbol":"02777"},{"name":"COL","symbol":"COL.HK","underlyingSymbol":"00688"},{"name":"CDA","symbol":"CDA.HK","underlyingSymbol":"01359"},{"name":"BYE","symbol":"BYE.HK","underlyingSymbol":"00285"},{"name":"JDH","symbol":"JDH.HK","underlyingSymbol":"06618"},{"name":"CCE","symbol":"CCE.HK","underlyingSymbol":"01898"},{"name":"CRC","symbol":"CRC.HK","underlyingSymbol":"01186"},{"name":"HCF","symbol":"HCF.HK","underlyingSymbol":"02828"},{"name":"HKG","symbol":"HKG.HK","underlyingSymbol":"00003"},{"name":"XBC","symbol":"XBC.HK","underlyingSymbol":"03988"},{"name":"XPB","symbol":"XPB.HK","underlyingSymbol":"01658"},{"name":"WEB","symbol":"WEB.HK","underlyingSymbol":"09898"},{"name":"GAH","symbol":"GAH.HK","underlyingSymbol":"00175"},{"name":"CPC","symbol":"CPC.HK","underlyingSymbol":"00386"},{"name":"EVG","symbol":"EVG.HK","underlyingSymbol":"03333"},{"name":"PIC","symbol":"PIC.HK","underlyingSymbol":"02328"},{"name":"SAN","symbol":"SAN.HK","underlyingSymbol":"01928"},{"name":"BUD","symbol":"BUD.HK","underlyingSymbol":"01876"},{"name":"HKB","symbol":"HKB.HK","underlyingSymbol":"00005"},{"name":"MGM","symbol":"MGM.HK","underlyingSymbol":"02282"},{"name":"CHT","symbol":"CHT.HK","underlyingSymbol":"00941"},{"name":"PIN","symbol":"PIN.HK","underlyingSymbol":"01339"},{"name":"XIC","symbol":"XIC.HK","underlyingSymbol":"01398"},{"name":"GAC","symbol":"GAC.HK","underlyingSymbol":"02238"},{"name":"KDS","symbol":"KDS.HK","underlyingSymbol":"00268"},{"name":"COG","symbol":"COG.HK","underlyingSymbol":"02007"},{"name":"SBO","symbol":"SBO.HK","underlyingSymbol":"01177"},{"name":"WHL","symbol":"WHL.HK","underlyingSymbol":"00004"},{"name":"CSE","symbol":"CSE.HK","underlyingSymbol":"01088"},{"name":"SET","symbol":"SET.HK","underlyingSymbol":"00020"},{"name":"SWA","symbol":"SWA.HK","underlyingSymbol":"00019"},{"name":"ZJM","symbol":"ZJM.HK","underlyingSymbol":"02899"},{"name":"MSB","symbol":"MSB.HK","underlyingSymbol":"01988"},{"name":"GLX","symbol":"GLX.HK","underlyingSymbol":"00027"},{"name":"DFM","symbol":"DFM.HK","underlyingSymbol":"00489"},{"name":"CIT","symbol":"CIT.HK","underlyingSymbol":"00267"},{"name":"CNC","symbol":"CNC.HK","underlyingSymbol":"00883"},{"name":"BIU","symbol":"BIU.HK","underlyingSymbol":"09888"},{"name":"CCC","symbol":"CCC.HK","underlyingSymbol":"01800"},{"name":"HGN","symbol":"HGN.HK","underlyingSymbol":"01044"},{"name":"NTE","symbol":"NTE.HK","underlyingSymbol":"09999"},{"name":"SNO","symbol":"SNO.HK","underlyingSymbol":"02382"},{"name":"TRF","symbol":"TRF.HK","underlyingSymbol":"02800"},{"name":"HAI","symbol":"HAI.HK","underlyingSymbol":"06837"},{"name":"WHG","symbol":"WHG.HK","underlyingSymbol":"00288"},{"name":"HLD","symbol":"HLD.HK","underlyingSymbol":"00012"},{"name":"CSP","symbol":"CSP.HK","underlyingSymbol":"01093"},{"name":"KSO","symbol":"KSO.HK","underlyingSymbol":"03888"},{"name":"YZC","symbol":"YZC.HK","underlyingSymbol":"01171"},{"name":"SHK","symbol":"SHK.HK","underlyingSymbol":"00016"},{"name":"JXC","symbol":"JXC.HK","underlyingSymbol":"00358"},{"name":"ALB","symbol":"ALB.HK","underlyingSymbol":"09988"},{"name":"BLI","symbol":"BLI.HK","underlyingSymbol":"09626"},{"name":"CLP","symbol":"CLP.HK","underlyingSymbol":"00002"},{"name":"ZAO","symbol":"ZAO.HK","underlyingSymbol":"06060"},{"name":"JDC","symbol":"JDC.HK","underlyingSymbol":"09618"},{"name":"NFU","symbol":"NFU.HK","underlyingSymbol":"09633"},{"name":"AIA","symbol":"AIA.HK","underlyingSymbol":"01299"},{"name":"KST","symbol":"KST.HK","underlyingSymbol":"01024"},{"name":"NCL","symbol":"NCL.HK","underlyingSymbol":"01336"},{"name":"TIC","symbol":"TIC.HK","underlyingSymbol":"00669"},{"name":"WXB","symbol":"WXB.HK","underlyingSymbol":"02269"},{"name":"AMC","symbol":"AMC.HK","underlyingSymbol":"03188"}],"message":"success","sign":"NRvOxhF7cpEM9PS+Hofd6/BduEddep0sUlnYq9o9fPUwcZmAj3spI/D2wXu8L/eZSxvWhSfjnB3BL8y7mrpvqY3m9BGeZhf24ZoA0lbY8YXyQ5JjXa0VHWieUmCItoR9E195Nsr2sWCoawJhz7+yaMFioWEe8VThtGrYMiTYnUE=","success":true,"timestamp":1719401951582}
Option indicator calculation
description
Calculation of various indicators for selected options
parameter
Parameter | Type | Required | Description |
---|---|---|---|
client | object | yes | SDK Htttp client |
symbol | string | yes | stock code |
right | string | yes | Long or short (CALL/PUT) |
strike | string | yes | strike price |
expiry | long | yes | expiry time (the value in milliseconds corresponding to 0:00 of New York time in the United States) |
underlyingSymbol | string | no | underlying symbol(if null or empty, defaults to the same value as 'symbol') |
return
name | type | description |
---|---|---|
delta | double | Greek letter delta |
gamma | double | Greek letter gamma |
theta | double | Greek letter theta |
vega | double | Greek letter vega |
insideValue | double | Intrinsic value |
timeValue | double | time value |
leverage | double | leverage |
openInterest | int | open interest |
historyVolatility | double | historical volatility, a percentage value |
premiumRate | double | premium rate, percentage value |
profitRate | double | Buy profit rate, percentage value |
volatility | double | implied volatility, a percentage value |
example
OptionFundamentals optionFundamentals = OptionCalcUtils.getOptionFundamentals(client,"BABA", "CALL", "205.0", "2019-11-01");
System.out.println(JSONObject.toJSONString(optionFundamentals));
response
{
"delta": 0.8573062699731591,
"gamma": 0.05151538284065261,
"historyVolatility": 24.38, //percentage format, expressed as 24.38%
"insideValue": 4.550000000000011,
"leverage": 30.695960907449216,
"openInterest": 35417.0,
"premiumRate": 0.18619306788885054, //percentage format, expressed as 0.186%
"profitRate": 47.138051059662665, //percentage format, expressed as 47.138%
"rho": 1.1107261502375654,
"theta": -0.17927469728943862,
"timeValue": 0.32499999999998863,
"vega": 0.034473845504081974,
"volatility": 28.62548828125 //percentage format, expressed as 28.62%
}