Options
Get option expiration date
Request: OptionExpirationQueryRequest
Description
Get the option expiration date, the request limit is 30 stocks
Parameters
Parameter | Type | Required | Description |
---|---|---|---|
symbols | List<String> | Yes | A list of stock symbols, the upper limit is: 30 |
market | string | No | 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 |
dates | List<String> | Expiration time, date format, such as: 2024-06-28 |
timestamps | List<Long> | Expiration date, timestamp format, such as: 1544763600000 (timestamp corresponding to New York time in the United States) |
periodTags | List<String> | Option period tag, "m" is the monthly option, "w" is the weekly option |
optionSymbols | List<String> | Option symbol |
count | Integer | Count of expiration dates |
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("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());
}
response
{
"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
}
Get option chain
Request: 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
Parameters
Parameter | Type | Required | Description |
---|---|---|---|
items | List<OptionChainModel> | Yes | Stock code, the maximum combination of symbol and expiry is: 30 |
filter | OptionChainFilterModel | Yes | Option expiration date, example: '2022-01-01' |
market | Market | Yes | US, HK |
Filter parameters:
Parameter | Type | Required | Description |
---|---|---|---|
inTheMoney | boolean | No | whether in the money |
implied_volatility | Range<Double> | No | implied volatility |
open_interest | Range<Integer> | No | open interest |
greeks | Greeks | No | delta, gamma, theta, vega, 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> | Option chain data |
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 | String | strike price |
right | String | option direction PUT/CALL |
bidPrice | Double | bid price |
bidSize | Integer | number of bids |
askPrice | Double | ask price |
askSize | Integer | ask size |
volume | Integer | volume |
latestPrice | Double | latest price |
preClose | Double | The closing price of the previous trading day |
openInterest | Integer | open interest |
multiplier | Integer | multiplier, US stock options default 100 |
lastTimestamp | Long | The latest transaction time such as: 1543343800698 |
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
Request: OptionBriefQueryV2Request
Description
Get Options Quote Summary.The parameter batch limit is 30
Parameters
Parameter | Type | Required | Description |
---|---|---|---|
items | List<OptionCommonModel> | Yes | List of the four elements of options. max size is 30 |
market | String | No | US only |
OptionCommonModel
structure is as follows:
Parameter | Type | Required | Description |
---|---|---|---|
symbol | String | Yes | stock code |
right | String | Yes | Long or short (CALL/PUT) |
strike | String | Yes | strike price |
expiry | Long | Yes | expiry time |
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:
Name | Type | Description |
---|---|---|
identifier | String | Option code |
symbol | String | Stock code |
strike | String | Strike price |
bidPrice | Double | Bid price |
bidSize | Integer | Number of bids |
askPrice | Double | Ask price |
askSize | Integer | Ask size |
latestPrice | Double | Latest price |
volume | Integer | Volume |
high | Double | Highest price |
low | Double | Lowest price |
open | Double | Opening price |
preClose | Double | The closing price of the previous trading day |
openInterest | Integer | Open interest |
change | Double | Change amount |
multiplier | Integer | Multiplier, US stock options default 100 |
right | String | Direction (PUT/CALL) |
volatility | String | Historical volatility |
expiry | Long | Expiry time (milliseconds, 0:00 of the day) |
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% |
timestamp | long | Latest transaction time |
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
Request: OptionKlineQueryV2Request
Description
Get option candlestick.The parameter batch limit is 30
*Parameters
Parameter | Type | Required | Description |
---|---|---|---|
items | List<OptionKlineModel> | Yes | The list of the Option K-line query condition. max size is 30 |
market | Market | No | US, HK only |
OptionKlineModel
structure is as follows:
Parameter | Type | Description |
---|---|---|
symbol | String | Stock code |
right | String | Long or short (CALL/PUT) |
strike | String | Strike price |
expiry | Long | Expiry time |
beginTime | Long | Start time |
endTime | Long | End time |
period | String | K line type, value range (day: day K, 1min: 1 minute, 5min: 5 minutes, 30min: 30 minutes, 60min: 60 minutes) |
limit | Integer | 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 |
sortDir | SortDir | 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 |
nextPageToken | String | Token that can be used to query the next page |
items | List<OptionKlinePoint> | Kline data list |
OptionKlinePoint object properties are as follows:
Name | Type | Description |
---|---|---|
open | Double | Opening price |
close | Double | Closing price |
high | Double | Highest price |
low | Double | Lowest price |
time | Long | K-line time |
volume | Long | Volume |
amount | Double | Amount |
openInterest | Integer | 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
Request: OptionTradeTickQueryRequest
Description
Obtain tick-by-tick transaction data of options.The parameter batch limit is 30
Parameters
Parameter | Type | Required | Description |
---|---|---|---|
items | List<OptionCommonModel> | Yes | Stock code |
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
Request: OptionDepthQueryRequest
Description
Get depth data of options.The parameter batch limit is 30
Parameters
Parameter | Type | Required | Description |
---|---|---|---|
items | List<OptionCommonModel> | Yes | List of the four elements of options. max size is 30 |
market | Market | No | US only |
OptionCommonModel
's structure is as follows:
Parameter | Type | Description |
---|---|---|
symbol | String | Stock code |
right | String | Look long or short (CALL/PUT) |
strike | String | Strike price |
expiry | Long | Expiry time (the value in milliseconds corresponding to 0:00 of New York time in the United States) |
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 | Float | Order price |
code | String | Options Exchange Code |
timestamp | Long | Exchange timestamp |
volume | Integer | Order volume |
count | Integer | Order count |
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
Request: OptionSymbolRequest
Description
Get the symbol list of Hong Kong stock options. Only supports Hong Kong market
Parameters
Parameter | type | required | description |
---|---|---|---|
market | Market | Yes | HK only |
lang | Language | 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
Parameters
Parameter | Type | Required | Description |
---|---|---|---|
client | TigerHttpClient | Yes | SDK Http client |
symbol | String | Yes | Stock code |
right | String | Yes | CALL or PUT |
strike | String | Yes | Strike price |
expiry | String | Yes | Expiration date(yyyy-MM-dd) |
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 |
rho | Double | Greek letter rho |
predictedValue | Double | Option Predictive Value |
timeValue | double | Time value |
premiumRate | double | Premium rate, percentage value |
profitRate | double | Buy profit rate, percentage value |
volatility | double | Implied volatility, a percentage value |
leverage | double | Leverage |
insideValue | double | Intrinsic value |
historyVolatility | double | Historical volatility, a percentage value |
openInterest | int | Open interest |
metricParam | String | For debugging and validating |
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%
}