Warrants and Callable Bull/Bear Certificates
Warrant Filter
Request class: WarrantFilterRequest
Description
Get warrant and CBBC market data list, supports sorting and filtering warrants by different fields.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| symbol | string | Yes | Underlying stock symbol |
| lang | Language | No | Language used for returned names; defaults to the client configuration |
| page | int | No | Page number, starting from 0, default is 0 |
| pageSize | Integer | No | Number of items per page, default is 50 |
| sortFieldName | String | No | Sort field (refer to WarrantItem fields); takes effect only when sortDir is set |
| sortDir | SortDir | No | Sort order: SortDir_Ascend or SortDir_Descend; omission or SortDir_No leaves sorting unset |
| warrantType | WarrantType... | No | Warrant types; accepts All, Call, Put, Bull, and Bear. Default is all |
| issuerName | String | No | Issuer (refer to issuerName field in FilterBounds), default all |
| expireYM | String | No | Expiry month in yyyy-MM format |
| state | WarrantState | No | Status: All, Normal, TerminateTrades, or WaitingToBeListed; defaults to All |
| inOutPrice | OptionPrice... | No | In/out-of-the-money filter; accepts ITM (in the money, including at the money) and OTM (out of the money) |
| lotSize | Set<Integer> | No | Lot size |
| entitlementRatio | Set<Double> | No | Entitlement ratio |
| strike | Double min, Double max | No | Strike price range |
| effectiveLeverage | Double min, Double max | No | Effective leverage range |
| leverageRatio | Double min, Double max | No | Leverage ratio range |
| callPrice | Double min, Double max | No | Call price range |
| volume | Long min, Long max | No | Volume range |
| premium | Double min, Double max | No | Premium range |
| outstandingRatio | Double min, Double max | No | Outstanding ratio range |
| impliedVolatility | Double min, Double max | No | Implied volatility range |
Response
com.tigerbrokers.stock.openapi.client.https.response.option.WarrantFilterResponsesource
Structure as follows:
public class WarrantFilterResponse extends TigerResponse {
@JSONField(name = "data")
private WarrantFilterItem item;
}Response data can be accessed through WarrantFilterResponse.getItem() method, returns WarrantFilterItem object, where com.tigerbrokers.stock.openapi.client.https.domain.option.item.WarrantFilterItem properties are as follows:
| Name | Type | Description |
|---|---|---|
| page | int | Page number |
| totalPage | int | Total pages |
| totalCount | int | Total data count |
| bounds | FilterBounds | Filterable conditions, see below |
| items | List<WarrantItem> | List containing WarrantItem objects, warrant data, see below |
FilterBounds object structure:
| Name | Type | Description |
|---|---|---|
| issuerName | List<String> | Issuer names |
| expireDate | List<String> | Expiry dates |
| lotSize | List<Integer> | Lot sizes |
| entitlementRatio | List<Double> | Entitlement ratios |
| leverageRatio | Range<Double> | Leverage ratio range |
| strike | Range<Double> | Strike price range |
| premium | Range<Double> | Premium range |
| outstandingRatio | Range<Double> | Outstanding ratio range |
| impliedVolatility | Range<Double> | Implied volatility range |
| effectiveLeverage | Range<Double> | Effective leverage range |
| callPrice | Range<Double> | Call price range |
WarrantItem object structure:
| Name | Type | Description |
|---|---|---|
| symbol | String | Warrant or CBBC code |
| name | String | Warrant or CBBC name |
| type | WarrantType | Type, 1: Call, 2: Put, 3: Bull, 4: Bear |
| secType | string | Contract type, Warrant: WAR/CBBC: IOPT |
| market | string | Market, HK |
| entitlementRatio | Double | Entitlement ratio |
| entitlementPrice | Double | Entitlement price |
| premium | Double | Premium |
| breakevenPoint | Double | Breakeven point at expiry |
| callPrice | Double | Call price (CBBC only) |
| beforeCallLevel | Double | Distance to call price (percentage, e.g. 0.196875 means 19.6875%) |
| expireDate | string | Expiry date in yyyy-MM-dd format |
| lastTradingDate | string | Last trading date in yyyy-MM-dd format |
| state | WarrantState | Status, 1 normal, 2 trading terminated, 3 pending listing |
| changeRate | Double | Change rate |
| change | Double | Change amount |
| latestPrice | Double | Latest price |
| volume | Long | Volume |
| amount | Double | Turnover |
| outstandingRatio | Double | Outstanding ratio |
| lotSize | Integer | Lot size |
| strike | string | Strike price |
| inOutPrice | Double | In-the-money (zero or positive)/Out-of-the-money (negative) |
| delta | Double | Sensitivity of theoretical warrant value to changes in the underlying price |
| leverageRatio | Double | Leverage ratio |
| effectiveLeverage | Double | Effective leverage |
| impliedVolatility | Double | Implied volatility |
Specific fields can be accessed through object get methods, such as getSymbol()
Note: WarrantItem.lastTradingDate in filter results is a yyyy-MM-dd string, while WarrantQuote.lastTradingDate in real-time quotes is an epoch-millisecond timestamp for midnight Hong Kong time.
The SDK represents these numeric fields with boxed Java types. Boxed types describe the Java representation and do not, by themselves, define whether the API may omit a field or return no value.
Example
WarrantFilterRequest request = WarrantFilterRequest.newRequest("00700");
request.lang(Language.en_US);
request.sortFieldName("expireDate");
request.sortDir(SortDir.SortDir_Descend);
request.warrantType(WarrantType.Bull);
request.issuerName("Goldman Sachs");
request.strike(300.0, 320.0);
request.pageSize(10);
WarrantFilterResponse response = client.execute(request);
if (response.isSuccess()) {
System.out.println(JSONObject.toJSONString(response.getItem()));
} else {
System.out.println("response error:" + response.getMessage());
}Example Response
{
"code":0,
"data":{
"bounds":{
"callPrice":{
"max":520,
"min":113.96
},
"effectiveLeverage":{
"max":16.116,
"min":-14.076
},
"entitlementRatio":[
47.483,
92.166,
94.967,
100,
460.829,
474.834,
485.437,
500
],
"expireDate":[
"2026-01",
"2025-12",
"2025-08",
"2024-12",
"2024-08",
"2024-07",
"2024-06",
"2024-04",
"2024-03",
"2024-02",
"2024-01",
"2023-12",
"2023-11",
"2023-10",
"2023-09",
"2023-08",
"2023-07",
"2023-06",
"2023-05",
"2023-04",
"2023-03",
"2023-02"
],
"impliedVolatility":{
"max":344.093,
"min":0
},
"issuerName":[
"East Asia",
"BNP Paribas",
"Societe Generale",
"Goldman Sachs",
"Guotai Junan",
"Haitong",
"Citigroup",
"HSBC",
"Macquarie",
"Morgan Stanley",
"JPMorgan",
"Rui Tong",
"Credit Suisse",
"UBS",
"DBS",
"Bank of China"
],
"leverageRatio":{
"max":823.452604,
"min":1.372409
},
"lotSize":[
1000,
5000,
10000,
50000
],
"outstandingRatio":{
"max":1,
"min":0
},
"premium":{
"max":0.848338,
"min":-0.340153
},
"strike":{
"max":717.11,
"min":111.301
}
},
"items":[
{
"amount":391370,
"beforeCallLevel":0.221875,
"breakevenPoint":401.2,
"callPrice":320,
"change":0.033,
"changeRate":0.244444,
"entitlementPrice":84,
"entitlementRatio":500,
"expireDate":"2024-03-28",
"inOutPrice":0.232661,
"lastTradingDate":"2024-03-27",
"latestPrice":0.168,
"leverageRatio":4.654762,
"lotSize":5000,
"market":"HK",
"name":"Tencent Goldman Sachs Apr Bull B.C",
"outstandingRatio":0.0023,
"premium":0.026087,
"secType":"IOPT",
"state":"Normal",
"strike":"317.2",
"symbol":"68723",
"type":"Bull",
"volume":2460000
},
{
"amount":341700,
"beforeCallLevel":0.26129,
"breakevenPoint":402.7,
"callPrice":310,
"change":0.035,
"changeRate":0.224359,
"entitlementPrice":95.5,
"entitlementRatio":500,
"expireDate":"2024-03-28",
"inOutPrice":0.272786,
"lastTradingDate":"2024-03-27",
"latestPrice":0.191,
"leverageRatio":4.094241,
"lotSize":5000,
"market":"HK",
"name":"Tencent Goldman Sachs Apr Bull A.C",
"outstandingRatio":0.0111,
"premium":0.029923,
"secType":"IOPT",
"state":"Normal",
"strike":"307.2",
"symbol":"68722",
"type":"Bull",
"volume":1870000
}
],
"page":0,
"totalCount":2,
"totalPage":1
},
"message":"success",
"sign":"l8TsgnaHBThS1X3oQKyLAt+rKEqnY/bW4S/e2U0o5Zmvpr0NgcR86cbWXHSwr1eNIh9ffR0hPlE1j6cbZp2ClrUzDvBT/rIu+mSfIZDg7qTZ9I340VTlk1pIWQzc28Iickx+pzVd0k9tMsIF/hnoiBXfpiyywYa7pa/pLhIcHo8=",
"success":true,
"timestamp":1676522644671
}Rate Limit
The base rate limit is 60 requests/min.
Get Warrant Quotes
Request class: WarrantQuoteRequest
Description
Get real-time warrant and CBBC quotes.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| symbols | List<String> | Yes | Warrant codes, maximum 50 |
| lang | Language | No | Language used for returned names; defaults to the client configuration |
Response
com.tigerbrokers.stock.openapi.client.https.response.option.WarrantQuoteResponsesource
Structure as follows:
public class WarrantQuoteResponse extends TigerResponse {
@JSONField(name = "data")
private WarrantQuoteItem item;
}Response data can be accessed through WarrantQuoteResponse.getItem(), which returns a WarrantQuoteItem object. Its items list contains com.tigerbrokers.stock.openapi.client.https.domain.option.item.WarrantQuote objects with the following properties:
| Field | Type | Description |
|---|---|---|
| symbol | String | Warrant or CBBC code |
| name | String | Warrant or CBBC name |
| exchange | String | Exchange |
| market | String | Market |
| secType | String | Contract type |
| currency | String | Currency |
| expiry | String | Expiry date in yyyy-MM-dd format |
| strike | String | Strike price |
| right | String | Direction (PUT/CALL) |
| multiplier | Double | Lot size |
| lastTradingDate | Long | Last trading date at 00:00 Hong Kong time, in milliseconds |
| entitlementRatio | Double | Entitlement ratio |
| entitlementPrice | Double | Entitlement price |
| minTick | Double | Minimum price increment |
| listingDate | Long | Listing date at 00:00 Hong Kong time, in milliseconds |
| callPrice | Double | Call price (CBBC only) |
| halted | HaltedStatus | Trading halt status. 0: Normal 3: Halted 4: Delisted |
| underlyingSymbol | String | Underlying asset code |
| timestamp | Long | Timestamp |
| latestPrice | Double | Latest price |
| preClose | Double | Previous close price |
| open | Double | Open price |
| high | Double | High price |
| low | Double | Low price |
| volume | Long | Volume |
| amount | Double | Turnover |
| premium | Double | Premium as a decimal; for example, 0.02141 means 2.141% |
| outstandingRatio | Double | Outstanding ratio as a decimal; for example, 0.0019 means 0.19% |
| impliedVolatility | Double | Implied volatility (warrants only) |
| inOutPrice | Double | Signed in/out-of-the-money amount as a decimal: values greater than or equal to 0 are in the money, and negative values are out of the money. For example, 0.20744 means 20.744% in the money and -0.20744 means 20.744% out of the money |
| delta | Double | Sensitivity of theoretical warrant value to changes in the underlying price (warrants only) |
| leverageRatio | Double | Leverage ratio |
| breakevenPoint | Double | Breakeven point at expiry |
Specific fields can be accessed through object get methods, such as getSymbol()
The SDK represents these numeric fields with boxed Java types. Boxed types describe the Java representation and do not, by themselves, define whether the API may omit a field or return no value. callPrice applies only to CBBCs; impliedVolatility and delta apply only to warrants.
Example
List<String> symbols = new ArrayList<>();
symbols.add("68723");
symbols.add("68722");
WarrantQuoteRequest request = WarrantQuoteRequest.newRequest(symbols);
request.lang(Language.en_US);
WarrantQuoteResponse response = client.execute(request);
if (response.isSuccess()) {
System.out.println(JSONObject.toJSONString(response));
} else {
System.out.println("response error:" + response.getMessage());
}Example Response
{
"code":0,
"data":{
"items":[
{
"amount":391370,
"breakevenPoint":401.2,
"callPrice":320,
"currency":"HKD",
"entitlementPrice":84,
"entitlementRatio":500,
"exchange":"SEHK",
"expiry":"2024-03-28",
"halted":"Normal",
"high":0.171,
"inOutPrice":0.232661,
"lastTradingDate":1711468800000,
"latestPrice":0.168,
"leverageRatio":4.654762,
"listingDate":1673280000000,
"low":0.142,
"market":"HK",
"minTick":0.001,
"multiplier":5000,
"name":"Tencent Goldman Sachs Apr Bull B.C",
"open":0.142,
"outstandingRatio":0.0023,
"preClose":0.135,
"premium":0.026087,
"right":"CALL",
"secType":"IOPT",
"strike":"317.2",
"symbol":"68723",
"timestamp":1676521860314,
"underlyingSymbol":"00700",
"volume":2460000
},
{
"amount":341700,
"breakevenPoint":402.7,
"callPrice":310,
"currency":"HKD",
"entitlementPrice":95.5,
"entitlementRatio":500,
"exchange":"SEHK",
"expiry":"2024-03-28",
"halted":"Normal",
"high":0.193,
"inOutPrice":0.272786,
"lastTradingDate":1711468800000,
"latestPrice":0.191,
"leverageRatio":4.094241,
"listingDate":1673280000000,
"low":0.172,
"market":"HK",
"minTick":0.001,
"multiplier":5000,
"name":"Tencent Goldman Sachs Apr Bull A.C",
"open":0.172,
"outstandingRatio":0.0111,
"preClose":0.156,
"premium":0.029923,
"right":"CALL",
"secType":"IOPT",
"strike":"307.2",
"symbol":"68722",
"timestamp":1676521860314,
"underlyingSymbol":"00700",
"volume":1870000
}
]
},
"message":"success",
"sign":"af55ER5QJh0jv3iELe01l+Kfw/qt6DJTGOaLeMgJMgqZ/xWH+ELVfHEEscnTa4YkQE3DDJN78Nln7gUFIaMK9NeoC2JNgT3gUUiDEgHhaWmSGerEd56srOZiEC90yIEKSBn8sIrW2ZTs1c/8jyu9QBraxcWnnb4NoopOTL7hXXg=",
"success":true,
"timestamp":1676522864184
}Rate Limit
The base rate limit is 60 requests/min.
Updated about 1 month ago
