Options

About 13 min

Get option expiration date

Request: OptionExpirationQueryRequest

Description

Get the option expiration date, the request limit is 30 stocks

Parameters

ParameterTypeRequiredDescription
symbolsList<String>YesA list of stock symbols, the upper limit is: 30
marketstringNoUS,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:

NameTypeDescription
symbolstringStock code
datesList<String>Expiration time, date format, such as: 2024-06-28
timestampsList<Long>Expiration date, timestamp format, such as: 1544763600000 (timestamp corresponding to New York time in the United States)
periodTagsList<String>Option period tag, "m" is the monthly option, "w" is the weekly option
optionSymbolsList<String>Option symbol
countIntegerCount 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

ParameterTypeRequiredDescription
itemsList<OptionChainModel>YesStock code, the maximum combination of symbol and expiry is: 30
filterOptionChainFilterModelYesOption expiration date, example: '2022-01-01'
marketMarketYesUS, HK

Filter parameters:

ParameterTypeRequiredDescription
inTheMoneybooleanNowhether in the money
implied_volatilityRange<Double>Noimplied volatility
open_interestRange<Integer>Noopen interest
greeksGreeksNodelta, 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:

NameTypeDescription
symbolStringUnderlying stock code
expiryLongOption expiration date
itemsList<OptionRealTimeQuoteGroup>Option chain data

OptionRealTimeQuoteGroup object structure:

nametypedescription
putOptionRealTimeQuoteput option contract
callOptionRealTimeQuoteCall option contract

OptionRealTimeQuote object structure:

NameTypeDescription
identifierStringoption identifier, such as: AAPL 210115C00095000
strikeStringstrike price
rightStringoption direction PUT/CALL
bidPriceDoublebid price
bidSizeIntegernumber of bids
askPriceDoubleask price
askSizeIntegerask size
volumeIntegervolume
latestPriceDoublelatest price
preCloseDoubleThe closing price of the previous trading day
openInterestIntegeropen interest
multiplierIntegermultiplier, US stock options default 100
lastTimestampLongThe latest transaction time such as: 1543343800698
impliedVolDoubleimplied volatility
deltaDoubledelta
gammaDoublegamma
thetaDoubletheta
vegaDoublevega
rhoDoublerho

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

ParameterTypeRequiredDescription
itemsList<OptionCommonModel>YesList of the four elements of options. max size is 30
marketStringNoUS only

OptionCommonModel structure is as follows:

ParameterTypeRequiredDescription
symbolStringYesstock code
rightStringYesLong or short (CALL/PUT)
strikeStringYesstrike price
expiryLongYesexpiry 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:

NameTypeDescription
identifierStringOption code
symbolStringStock code
strikeStringStrike price
bidPriceDoubleBid price
bidSizeIntegerNumber of bids
askPriceDoubleAsk price
askSizeIntegerAsk size
latestPriceDoubleLatest price
volumeIntegerVolume
highDoubleHighest price
lowDoubleLowest price
openDoubleOpening price
preCloseDoubleThe closing price of the previous trading day
openInterestIntegerOpen interest
changeDoubleChange amount
multiplierIntegerMultiplier, US stock options default 100
rightStringDirection (PUT/CALL)
volatilityStringHistorical volatility
expiryLongExpiry time (milliseconds, 0:00 of the day)
ratesBondsDoubleOne-year U.S. Treasury bond rate, updated once a day, such as: 0.0078 means the actual interest rate is: 0.78%
timestamplongLatest 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

ParameterTypeRequiredDescription
itemsList<OptionKlineModel>YesThe list of the Option K-line query condition. max size is 30
marketMarketNoUS, HK only

OptionKlineModel structure is as follows:

ParameterTypeDescription
symbolStringStock code
rightStringLong or short (CALL/PUT)
strikeStringStrike price
expiryLongExpiry time
beginTimeLongStart time
endTimeLongEnd time
periodStringK line type, value range (day: day K, 1min: 1 minute, 5min: 5 minutes, 30min: 30 minutes, 60min: 60 minutes)
limitIntegerThe 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
sortDirSortDirSort 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:

NameTypeDescription
symbolStringStock code
periodStringPeriod type
nextPageTokenStringToken that can be used to query the next page
itemsList<OptionKlinePoint>Kline data list

OptionKlinePoint object properties are as follows:

NameTypeDescription
openDoubleOpening price
closeDoubleClosing price
highDoubleHighest price
lowDoubleLowest price
timeLongK-line time
volumeLongVolume
amountDoubleAmount
openInterestIntegerOpen 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

ParameterTypeRequiredDescription
itemsList<OptionCommonModel>YesStock 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:

NameTypeDescription
symbolstringUnderlying stock code
expirylongExpiry time
strikestringStrike price
rightstringPUT or CALL
itemsList<TradeTickPoint>TradeTickPoint object list, each TradeTickPoint object corresponds to a single transaction data

The TradeTickPoint object structure is as follows:

NameTypeDescription
priceDoubleTransaction price
timeLongTransaction time
volumeLongVolume

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

ParameterTypeRequiredDescription
itemsList<OptionCommonModel>YesList of the four elements of options. max size is 30
marketMarketNoUS only

OptionCommonModel 's structure is as follows:

ParameterTypeDescription
symbolStringStock code
rightStringLook long or short (CALL/PUT)
strikeStringStrike price
expiryLongExpiry 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:

NameTypeDescription
symbolStringunderlying stock code
expiryLongexpiry time
strikeStringstrike price
rightStringPUT or CALL
timestampLongdata timestamp
askList<OptionDepthOrderBook>OptionDepthOrderBook object list, each OptionDepthOrderBook object corresponds to a ask order data from options exchange
bidList<OptionDepthOrderBook>OptionDepthOrderBook object list, each OptionDepthOrderBook object corresponds to a bid order data from options exchange

The OptionDepthOrderBook object structure is as follows:

NameTypeDescription
priceFloatOrder price
codeStringOptions Exchange Code
timestampLongExchange timestamp
volumeIntegerOrder volume
countIntegerOrder 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

Parametertyperequireddescription
marketMarketYesHK only
langLanguageNoLanguage: 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:

nametypedescription
symbolStringOption symbol
nameStringName
underlyingSymbolStringUnderlying 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

ParameterTypeRequiredDescription
clientTigerHttpClientYesSDK Http client
symbolStringYesStock code
rightStringYesCALL or PUT
strikeStringYesStrike price
expiryStringYesExpiration date(yyyy-MM-dd)
underlyingSymbolStringNoUnderlying symbol(if null or empty, defaults to the same value as 'symbol')

return

NameTypeDescription
deltadoubleGreek letter delta
gammadoubleGreek letter gamma
thetadoubleGreek letter theta
vegadoubleGreek letter vega
rhoDoubleGreek letter rho
predictedValueDoubleOption Predictive Value
timeValuedoubleTime value
premiumRatedoublePremium rate, percentage value
profitRatedoubleBuy profit rate, percentage value
volatilitydoubleImplied volatility, a percentage value
leveragedoubleLeverage
insideValuedoubleIntrinsic value
historyVolatilitydoubleHistorical volatility, a percentage value
openInterestintOpen interest
metricParamStringFor 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%
}
Last update: