# Warrant Screening V2

get_warrant_screen(request)

  • Description

    Warrant screening V2. Compared with the legacy get_warrant, this API returns 45 columns of warrant attributes, supports HK / Singapore / Malaysia markets, and supports a count-only mode (only_count). All numeric fields accept raw values; OpenD performs magnification conversion internally.

  • Parameters

    Parameter Type Description
    request WarrantScreenRequest Warrant screening request object; warrant_market must be passed at construction
    • WarrantScreenRequest fields:

      Field Type Description
      warrant_market WarrantMarket Market
      is_delay bool Whether to use delayed market data
      only_count bool Whether to return only the total count (no detailed records)
      page_from int Pagination start position
      page_count int Maximum results per page
    • Filter builder methods (each call appends one filter condition):

      Method Description
      add_interval_filter(field_id, min_val=None, max_val=None, min_included=True, max_included=True) Interval filter
      add_choice_filter(field_id, choices) Choice filter
      add_sort(field_id, desc=False) Sort
    • Common WarrantField field_id (full list see WarrantField):

      field_id Meaning Filter type
      4 ISSUER_ID choice
      5 STOCK_OWNER underlying choice
      6 WARRANT_TYPE choice
      8 CURRENT_PRICE interval
      9 STREET_RATIO interval
      10 VOLUME interval
      16 LEVERAGE_RATIO interval
      19 STATUS choice
      23 EFFECTIVE_LEVERAGE interval
  • Returns

    Parameter Type Description
    ret RET_CODE API result
    data tuple When ret == RET_OK, returns (last_page, all_count, DataFrame)
    str When ret != RET_OK, an error description is returned
    • Returned DataFrame fields (45 columns total):

      Field Type Description
      issuer_id int Issuer ID
      warrant_type int Warrant type
      strike_price float Strike price
      maturity_date str Maturity date
      last_trade_date str Last trade date
      conversion_ratio float Conversion ratio
      last_close_price float Previous close price
      recovery_price float Recovery price (Bull/Bear only)
      stock_owner_price float Underlying stock price
      current_price float Current price
      volume int Volume
      turnover float Turnover
      sell_vol int Ask volume
      buy_vol int Bid volume
      sell_price float Ask price
      buy_price float Bid price
      street_rate float Street ratio
      high_price float High
      low_price float Low
      implied_volatility float Implied volatility (Call/Put only)
      delta float Delta (Call/Put only)
      status int Warrant status
      street_rate_new float Street ratio (new)
      score float Composite score
      premium float Premium
      leverage float Leverage
      effective_leverage float Effective leverage
      break_even_point float Break-even point
      ipop float In/Out of the money
      amplitude float Amplitude
      fx_score float SG score
      ipo_time str IPO time
      street_vol int Street volume
      lot_size int Lot size
      issue_size int Issue size
      ipo_price float IPO price
      upper_strike_price float Upper strike price (Inline only)
      lower_strike_price float Lower strike price (Inline only)
      iw_price_status int Inside / outside the range
      sensitivity float Sensitivity
      price_recovery_ratio float Underlying distance to recovery price (Bull/Bear only)
      code str Warrant code with market prefix (e.g. HK.10001), filled by OpenD after symbol lookup
      owner_code str Underlying code with market prefix (e.g. HK.00700)
      name str Warrant name
      owner_name str Underlying name
  • Example

from futu import (
    OpenQuoteContext, RET_OK, WarrantScreenRequest,
    WarrantMarket, WarrantField, WarrantType,
)

quote_ctx = OpenQuoteContext(host='127.0.0.1', port=11111)

# Example 1: HK low-priced high-leverage Call / Put warrants
req = WarrantScreenRequest(warrant_market=WarrantMarket.HK)
req.add_choice_filter(field_id=WarrantField.WARRANT_TYPE,
                      choices=[WarrantType.CALL, WarrantType.PUT])           # Call + Put
req.add_interval_filter(field_id=WarrantField.CURRENT_PRICE,
                        min_val=0.1, max_val=5.0)                            # Current price 0.1~5
req.add_interval_filter(field_id=WarrantField.EFFECTIVE_LEVERAGE,
                        min_val=3.0)                                         # Effective leverage > 3
req.add_interval_filter(field_id=WarrantField.STREET_RATIO, max_val=50.0)    # Street ratio < 50%
req.add_sort(field_id=WarrantField.VOLUME, desc=True)                        # Volume descending
req.page_count = 20

ret, data = quote_ctx.get_warrant_screen(req)
if ret == RET_OK:
    last_page, all_count, df = data
    print(df[['code', 'warrant_type', 'current_price', 'effective_leverage']].head())
else:
    print('error: ', data)

# Example 2: Return only the total count of matching records
req = WarrantScreenRequest(warrant_market=WarrantMarket.HK)
req.only_count = True
req.add_choice_filter(field_id=WarrantField.WARRANT_TYPE, choices=[WarrantType.CALL])
req.add_interval_filter(field_id=WarrantField.CURRENT_PRICE, min_val=1.0)
ret, data = quote_ctx.get_warrant_screen(req)
if ret == RET_OK:
    _, all_count, _ = data
    print(f"Total Call warrants matching: {all_count}")

# Example 3: Filter by underlying stock code (choice accepts code string)
req = WarrantScreenRequest(warrant_market=WarrantMarket.HK)
req.add_choice_filter(field_id=WarrantField.STOCK_OWNER, choices=["HK.00700"])
req.add_choice_filter(field_id=WarrantField.WARRANT_TYPE,
                      choices=[WarrantType.BULL, WarrantType.BEAR])          # Bull + Bear
req.add_sort(field_id=WarrantField.TURNOVER, desc=True)
req.page_count = 50
ret, data = quote_ctx.get_warrant_screen(req)
if ret == RET_OK:
    _, all_count, df = data
    print(f"Total Tencent bull/bear warrants: {all_count}")
    print(df[['code', 'name', 'warrant_type', 'turnover']].head())

quote_ctx.close()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
  • Output
       code  warrant_type  current_price  effective_leverage
0  HK.29080             1          0.117               7.070
1  HK.28957             1          0.110               8.021
2  HK.28545             1          0.106               6.807
3  HK.29526             1          0.118               4.337
4  HK.13637             1          0.212               5.896
Total Call warrants matching: 197
Total Tencent bull/bear warrants: 393
       code               name  warrant_type    turnover
0  HK.57161  腾讯法兴六乙牛X.C             3  10149350.0
1  HK.54908  腾讯法兴六乙牛R.C             3   9797800.0
2  HK.55573  腾讯华泰六十牛C.C             3   4227400.0
3  HK.53663  腾讯法兴六乙牛N.C             3   3504625.0
4  HK.68433  腾讯法兴六乙牛M.C             3   3018900.0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  • Per-field examples

    All examples below assume req = WarrantScreenRequest(warrant_market=WarrantMarket.HK) has been constructed; the measured response is OpenD HK-market sample data, showing the corresponding all_count and DataFrame head for that field (values already auto-scaled by the SDK).

    # CODE(id=1 · choice · HK · no return column) Security code (text)

    Pass an array of prefixed code strings (e.g. "HK.57161"); SDK auto-strips the prefix; exact match only

    req.add_choice_filter(WarrantField.CODE, ["HK.57161", "HK.54908", "HK.55573"])
    
    1

    Measured response (HK · all_count=3, 3 rows matched):

           code               name owner_code owner_name  warrant_type  current_price
    0  HK.54908  腾讯法兴六乙牛R.C   HK.00700   腾讯控股             3          0.066
    1  HK.55573  腾讯华泰六十牛C.C   HK.00700   腾讯控股             3          0.080
    2  HK.57161  腾讯法兴六乙牛X.C   HK.00700   腾讯控股             3          0.044
    
    1
    2
    3
    4
    # NAME(id=2 · choice/sort · HK · no return column) Security name (text)

    Text field, suitable only for sort; choice requires a name string

    req.add_sort(WarrantField.NAME, desc=False)
    
    1

    Measured response (HK · all_count=16170, 5 rows matched, head top 5):

           code        name owner_code owner_name  warrant_type  current_price
    0  HK.59177  阿里法巴八十熊G.P   HK.09988     阿里巴巴-W             4          0.290
    1  HK.65875  阿里法巴八十熊H.P   HK.09988     阿里巴巴-W             4          0.024
    2  HK.55774  阿里法巴八十熊I.P   HK.09988     阿里巴巴-W             4          0.203
    3  HK.60642  阿里法巴八五熊D.P   HK.09988     阿里巴巴-W             4          0.157
    4  HK.66020  阿里法巴八五熊E.P   HK.09988     阿里巴巴-W             4          0.173
    
    1
    2
    3
    4
    5
    6
    # ISSUER_ID(id=4 · choice · HK · return column issuer_id) Issuer ID

    Filterable only on HK; SG/MY measurements show issuer_id always 0. See the ISSUER_ID table above for the full issuer mapping

    req.add_choice_filter(WarrantField.ISSUER_ID, [21])  # 仅瑞通 VT 发行
    req.add_sort(WarrantField.TURNOVER, desc=True)
    
    1
    2

    Measured response (HK · all_count=2431, 5 rows matched, head top 5):

           code        name owner_code owner_name  issuer_id  warrant_type  current_price
    0  HK.55430  恒指瑞银八十熊B.P  HK.800000       恒生指数         21             4          0.053
    1  HK.57466  恒指瑞银八九牛N.C  HK.800000       恒生指数         21             3          0.037
    2  HK.27921  恒指瑞银六九沽A.P  HK.800000       恒生指数         21             2          0.050
    3  HK.29814  恒指瑞银六甲购A.C  HK.800000       恒生指数         21             1          0.052
    4  HK.56502  恒指瑞银八九牛D.C  HK.800000       恒生指数         21             3          0.054
    
    1
    2
    3
    4
    5
    6
    # STOCK_OWNER(id=5 · choice · HK / SG / MY · return column owner_code) Underlying stock ID

    Accepts a list of code strings directly, e.g. ["HK.00700"]

    req.add_choice_filter(WarrantField.STOCK_OWNER, ["HK.00700"])
    req.add_sort(WarrantField.TURNOVER, desc=True)
    
    1
    2

    Measured response (HK · all_count=844, 5 rows matched, head top 5):

           code        name owner_code owner_name  warrant_type  current_price
    0  HK.29080  腾讯国君六甲购B.C   HK.00700       腾讯控股             1          0.117
    1  HK.27892  腾讯摩通六九购E.C   HK.00700       腾讯控股             1          0.058
    2  HK.27966  腾讯法兴六九购D.C   HK.00700       腾讯控股             1          0.060
    3  HK.28957  腾讯法兴六甲购B.C   HK.00700       腾讯控股             1          0.110
    4  HK.29069  腾讯摩通六甲购B.C   HK.00700       腾讯控股             1          0.099
    
    1
    2
    3
    4
    5
    6
    # WARRANT_TYPE(id=6 · choice · HK / SG / MY · return column warrant_type) Warrant type

    1=Call 2=Put 3=Bull 4=Bear 5=Inline; SG measurements may return 6/7, MY may return 8 (not defined in the SDK enum)

    req.add_choice_filter(WarrantField.WARRANT_TYPE,
                          [WarrantType.BULL, WarrantType.BEAR])
    req.add_sort(WarrantField.TURNOVER, desc=True)
    
    1
    2
    3

    Measured response (HK · all_count=7923, 5 rows matched, head top 5):

           code        name owner_code owner_name  warrant_type  current_price
    0  HK.55994  恒指摩通九三熊R.P  HK.800000       恒生指数             4          0.056
    1  HK.57003  恒指摩通八九牛8.C  HK.800000       恒生指数             3          0.038
    2  HK.57109  恒指法兴八七牛E.C  HK.800000       恒生指数             3          0.037
    3  HK.55641  恒指法兴八三熊P.P  HK.800000       恒生指数             4          0.055
    4  HK.57114  恒指法兴八九牛7.C  HK.800000       恒生指数             3          0.054
    
    1
    2
    3
    4
    5
    6
    # CONVERSION_RATIO(id=7 · interval · HK / SG / MY · return column conversion_ratio) Conversion ratio

    SDK takes the ratio itself (pass 1.0 for a 1.0 ratio); protocol field ×1000 integer-encoded on the wire

    req.add_interval_filter(WarrantField.CONVERSION_RATIO, min_val=1.0, max_val=10.0)
    req.add_sort(WarrantField.CONVERSION_RATIO, desc=False)
    
    1
    2

    Measured response (HK · all_count=3527, 5 rows matched, head top 5):

           code        name owner_code owner_name  conversion_ratio  warrant_type  current_price
    0  HK.15938  利丰瑞信七七购A.C   HK.01818       招金矿业               1.0             1          0.000
    1  HK.15941  平安瑞银七甲沽B.P   HK.02318       中国平安               1.0             1          0.000
    2  HK.25738  首程麦银六八购A.C   HK.00697       首程控股               1.0             1          0.016
    3  HK.15190    中核信证六二购B   HK.01816      中广核电力               1.0             1          0.000
    4  HK.17771  置富麦银六八购A.C   HK.00778     置富产业信托               1.0             1          0.015
    
    1
    2
    3
    4
    5
    6
    # CURRENT_PRICE(id=8 · interval · HK / SG / MY · return column current_price) Current price

    Unit: in currency; SDK takes the raw price (protocol field ×1000 integer-encoded on the wire)

    req.add_interval_filter(WarrantField.CURRENT_PRICE, min_val=0.1, max_val=0.15)
    req.add_sort(WarrantField.CURRENT_PRICE, desc=False)
    
    1
    2

    Measured response (HK · all_count=1719, 5 rows matched, head top 5):

           code        name owner_code owner_name  current_price  warrant_type
    0  HK.65586  中移花旗六九牛C.C   HK.00941       中国移动            0.1             3
    1  HK.67749  阿里瑞银六六牛B.C   HK.09988     阿里巴巴-W            0.1             3
    2  HK.69293  港交汇丰七甲牛A.C   HK.00388      香港交易所            0.1             3
    3  HK.56800  恒指信证七九牛U.C  HK.800000       恒生指数            0.1             3
    4  HK.57184  恒指法兴八三牛A.C  HK.800000       恒生指数            0.1             3
    
    1
    2
    3
    4
    5
    6
    # STREET_RATIO(id=9 · interval · HK / SG / MY · return column street_rate) Street ratio

    Unit: %; SDK takes the value as e.g. 50.0 (protocol field ×1000 integer-encoded on the wire)

    req.add_interval_filter(WarrantField.STREET_RATIO, min_val=10.0, max_val=50.0)
    req.add_sort(WarrantField.STREET_RATIO, desc=False)
    
    1
    2

    Measured response (HK · all_count=1918, 5 rows matched, head top 5):

           code        name owner_code owner_name  street_rate  warrant_type  current_price
    0  HK.27205  腾讯瑞银八乙购A.C   HK.00700       腾讯控股        10.00             1          0.233
    1  HK.63380  恒指中银八三熊I.P  HK.800000       恒生指数        10.00             4          0.335
    2  HK.60023  恒指国君七乙牛S.C  HK.800000       恒生指数        10.01             3          0.193
    3  HK.21640  飞鹤华泰六七购A.C   HK.06186       中国飞鹤        10.01             1          0.010
    4  HK.25461  恒指瑞银六七购A.C  HK.800000       恒生指数        10.01             1          0.010
    
    1
    2
    3
    4
    5
    6
    # VOLUME(id=10 · interval · HK / SG / MY · return column volume) Volume

    Unit: shares

    req.add_interval_filter(WarrantField.VOLUME, min_val=1000)
    req.add_sort(WarrantField.VOLUME, desc=True)
    
    1
    2

    Measured response (HK · all_count=6092, 5 rows matched, head top 5):

           code        name owner_code owner_name       volume  warrant_type  current_price
    0  HK.55994  恒指摩通九三熊R.P  HK.800000       恒生指数  20257030000             4          0.056
    1  HK.55641  恒指法兴八三熊P.P  HK.800000       恒生指数  18202610000             4          0.055
    2  HK.57109  恒指法兴八七牛E.C  HK.800000       恒生指数  17612080000             3          0.037
    3  HK.57003  恒指摩通八九牛8.C  HK.800000       恒生指数  16576470000             3          0.038
    4  HK.55430  恒指瑞银八十熊B.P  HK.800000       恒生指数  12932700000             4          0.053
    
    1
    2
    3
    4
    5
    6
    # MATURITY_DATE(id=11 · interval · HK / SG / MY · return column maturity_date) Maturity date (Unix timestamp seconds)

    Unix timestamp in seconds; returned maturity_date is also a string-typed timestamp

    import time
    req.add_interval_filter(WarrantField.MATURITY_DATE,
                            min_val=int(time.time()),
                            max_val=int(time.time()) + 365*86400)
    req.add_sort(WarrantField.MATURITY_DATE, desc=False)
    
    1
    2
    3
    4
    5

    Measured response (HK · all_count=9330, 5 rows matched, head top 5):

           code        name owner_code owner_name  maturity_date  warrant_type  current_price
    0  HK.21145  金云摩利六六购A.C   HK.03896        金山云     1781539200             1          0.010
    1  HK.54786  百度瑞银六六牛B.C   HK.09888    百度集团-SW     1781539200             3          0.305
    2  HK.23342  优必中银六六购B.C   HK.09880        优必选     1781539200             1          0.010
    3  HK.23574  汇量华泰六六购A.C   HK.01860       汇量科技     1781539200             1          0.010
    4  HK.18353  美高摩通六六购A.C   HK.02282      美高梅中国     1781625600             1          0.010
    
    1
    2
    3
    4
    5
    6
    # STRIKE_PRICE(id=12 · interval · HK / SG / MY · return column strike_price) Strike price

    Unit: in currency; SDK takes the raw price (protocol field ×1000 integer-encoded on the wire)

    req.add_interval_filter(WarrantField.STRIKE_PRICE, min_val=10.0, max_val=20.0)
    req.add_sort(WarrantField.STRIKE_PRICE, desc=False)
    
    1
    2

    Measured response (HK · all_count=990, 5 rows matched, head top 5):

           code        name owner_code owner_name  strike_price  warrant_type  current_price
    0  HK.19876  喜相华泰六八购A.C   HK.02473      喜相逢集团          10.0             1          0.010
    1  HK.23889  中油法巴六七购A.C   HK.00857     中国石油股份          10.0             1          0.153
    2  HK.11055  英港摩通六七沽A.P        N/A        N/A          10.0             2          0.051
    3  HK.25258  中联花旗六八购A.C   HK.00762       中国联通          10.0             1          0.014
    4  HK.27520  新发信证七三购A.C   HK.00017      新世界发展          10.0             1          0.107
    
    1
    2
    3
    4
    5
    6
    # PREMIUM(id=13 · interval · HK / SG / MY · return column premium) Premium

    Unit: %; SDK takes the value as e.g. 15.0, negative allowed (protocol field ×100000 integer-encoded on the wire)

    req.add_interval_filter(WarrantField.PREMIUM, min_val=0.0, max_val=20.0)
    req.add_sort(WarrantField.PREMIUM, desc=False)
    
    1
    2

    Measured response (HK · all_count=11283, 5 rows matched, head top 5):

           code        name owner_code owner_name  premium  warrant_type  current_price
    0  HK.21137  恒大中银八七购A.C        N/A        N/A      0.0             1          0.000
    1  HK.16449  恒生中银九乙购A.C        N/A        N/A      0.0             1          0.000
    2  HK.16512  恒指高盛九九沽J.P   HK.06688       蚂蚁集团      0.0             1          0.000
    3  HK.16522  恒指瑞通九十沽A.P   HK.06688       蚂蚁集团      0.0             1          0.000
    4  HK.68392  招行瑞银六八牛A.C   HK.03968       招商银行      0.0             3          0.238
    
    1
    2
    3
    4
    5
    6
    # RECOVERY_PRICE(id=14 · interval · HK / SG / MY · return column recovery_price) Recovery price

    Unit: in currency; SDK takes the raw price; effective only for Bull/Bear (3/4) (protocol field ×1000 integer-encoded on the wire)

    req.add_choice_filter(WarrantField.WARRANT_TYPE,
                          [WarrantType.BULL, WarrantType.BEAR])
    req.add_interval_filter(WarrantField.RECOVERY_PRICE, min_val=0.01)
    req.add_sort(WarrantField.RECOVERY_PRICE, desc=False)
    
    1
    2
    3
    4

    Measured response (HK · all_count=7923, 5 rows matched, head top 5):

           code        name owner_code owner_name  recovery_price  warrant_type  current_price
    0  HK.59404  商汤瑞银七八牛D.C   HK.00020       商汤-W            1.00             3          0.062
    1  HK.64826  商汤法兴七五牛A.C   HK.00020       商汤-W            1.05             3          0.113
    2  HK.59403  商汤瑞银七八牛C.C   HK.00020       商汤-W            1.10             3          0.053
    3  HK.64933  商汤瑞银六乙牛A.C   HK.00020       商汤-W            1.20             3          0.074
    4  HK.59322    商汤汇丰七一牛A   HK.00020       商汤-W            1.20             3          0.000
    
    1
    2
    3
    4
    5
    6
    # IMPLIED_VOLATILITY(id=15 · interval · HK / SG / MY · return column implied_volatility) Implied volatility

    Unit: %; SDK takes the value as e.g. 15.0; effective only for Call/Put (1/2) (protocol field ×100 integer-encoded on the wire)

    req.add_interval_filter(WarrantField.IMPLIED_VOLATILITY, min_val=10.0, max_val=100.0)
    req.add_sort(WarrantField.IMPLIED_VOLATILITY, desc=False)
    
    1
    2

    Measured response (HK · all_count=5962, 5 rows matched, head top 5):

           code        name owner_code owner_name  implied_volatility  warrant_type  current_price
    0  HK.24413  中移中银六九购A.C   HK.00941       中国移动              13.487             1          0.041
    1  HK.25984  建行韩投八乙购A.C   HK.00939       建设银行              14.638             1          0.500
    2  HK.25450  中移国君六九购A.C   HK.00941       中国移动              15.308             1          0.054
    3  HK.24942  中移汇丰六九购A.C   HK.00941       中国移动              15.776             1          0.059
    4  HK.14414  建行法巴六乙购A.C   HK.00939       建设银行              15.792             1          0.191
    
    1
    2
    3
    4
    5
    6
    # LEVERAGE_RATIO(id=16 · interval · HK / SG / MY · return column leverage) Leverage ratio

    SDK takes the raw value (protocol field ×1000 integer-encoded on the wire)

    req.add_interval_filter(WarrantField.LEVERAGE_RATIO, min_val=3.0, max_val=50.0)
    req.add_sort(WarrantField.LEVERAGE_RATIO, desc=True)
    
    1
    2

    Measured response (HK · all_count=8360, 5 rows matched, head top 5):

           code        name owner_code owner_name  leverage  warrant_type  current_price
    0  HK.29999  恒指中银六乙购C.C  HK.800000       恒生指数    49.985             1          0.071
    1  HK.27121  领展瑞银六九购A.C   HK.00823     领展房产基金    49.972             1          0.074
    2  HK.15343  百度摩通六八沽A.P   HK.09888    百度集团-SW    49.869             2          0.023
    3  HK.25973  远能麦银六八购A.C   HK.01138       中远海能    49.852             1          0.068
    4  HK.26365  远能麦银六九购A.C   HK.01138       中远海能    49.852             1          0.034
    
    1
    2
    3
    4
    5
    6
    # PRICE_RECOVERY_RATIO(id=17 · interval · HK / SG / MY · return column price_recovery_ratio) Underlying-to-recovery price %

    Unit: %; SDK takes the value as e.g. 15.0, negative allowed; effective only for Bull/Bear (3/4) (protocol field ×100000 integer-encoded on the wire)

    req.add_choice_filter(WarrantField.WARRANT_TYPE,
                          [WarrantType.BULL, WarrantType.BEAR])
    req.add_interval_filter(WarrantField.PRICE_RECOVERY_RATIO,
                            min_val=-50.0, max_val=50.0)
    req.add_sort(WarrantField.PRICE_RECOVERY_RATIO, desc=False)
    
    1
    2
    3
    4
    5

    Measured response (HK · all_count=7923, 5 rows matched, head top 5):

           code        name owner_code owner_name  price_recovery_ratio  warrant_type  current_price
    0  HK.54832  美团瑞银七乙熊M.P   HK.03690       美团-W              -0.73916             4          0.430
    1  HK.53329  美团瑞银七乙熊I.P   HK.03690       美团-W              -0.72053             4          0.390
    2  HK.54269  美团摩通七九熊F.P   HK.03690       美团-W              -0.72053             4          0.395
    3  HK.54562  美团汇丰七乙熊D.P   HK.03690       美团-W              -0.71018             4          0.370
    4  HK.54799  美团摩通七乙熊D.P   HK.03690       美团-W              -0.71018             4          0.370
    
    1
    2
    3
    4
    5
    6
    # DELTA(id=18 · interval · HK / SG / MY · return column delta) Delta

    SDK takes the raw value, range [-1, 1]; effective only for Call/Put (1/2) (protocol field ×1000 integer-encoded on the wire)

    req.add_choice_filter(WarrantField.WARRANT_TYPE,
                          [WarrantType.CALL, WarrantType.PUT])
    req.add_interval_filter(WarrantField.DELTA, min_val=-1.0, max_val=1.0)
    req.add_sort(WarrantField.DELTA, desc=True)
    
    1
    2
    3
    4

    Measured response (HK · all_count=8247, 5 rows matched, head top 5):

           code        name owner_code owner_name  delta  warrant_type  current_price
    0  HK.16281  联想信证六六购A.C   HK.00992       联想集团  0.999             1           1.28
    1  HK.18636  中寿国君六六购A.C   HK.02628       中国人寿  0.999             1           0.59
    2  HK.22934  建滔华泰六八购A.C   HK.00148       建滔集团  0.997             1           6.73
    3  HK.19057  汇丰摩利六七购A.C   HK.00005       汇丰控股  0.996             1           0.87
    4  HK.19058  汇丰法兴六七购A.C   HK.00005       汇丰控股  0.996             1           0.87
    
    1
    2
    3
    4
    5
    6
    # STATUS(id=19 · choice · HK / SG / MY · return column status) Warrant status

    0=Normal 1=Terminated 2=Pending listing

    req.add_choice_filter(WarrantField.STATUS, [WarrantStatus.NORMAL])
    req.add_sort(WarrantField.VOLUME, desc=True)
    
    1
    2

    Measured response (HK · all_count=13057, 5 rows matched, head top 5):

           code        name owner_code owner_name  status  warrant_type  current_price
    0  HK.55994  恒指摩通九三熊R.P  HK.800000       恒生指数       0             4          0.056
    1  HK.55641  恒指法兴八三熊P.P  HK.800000       恒生指数       0             4          0.055
    2  HK.57109  恒指法兴八七牛E.C  HK.800000       恒生指数       0             3          0.037
    3  HK.57003  恒指摩通八九牛8.C  HK.800000       恒生指数       0             3          0.038
    4  HK.55430  恒指瑞银八十熊B.P  HK.800000       恒生指数       0             4          0.053
    
    1
    2
    3
    4
    5
    6
    # IPO_TIME(id=20 · interval · HK / SG / MY · return column ipo_time) Listing time (Unix timestamp seconds)

    Unix timestamp in seconds

    req.add_interval_filter(WarrantField.IPO_TIME,
                            min_val=1700000000, max_val=2000000000)
    req.add_sort(WarrantField.IPO_TIME, desc=True)
    
    1
    2
    3

    Measured response (HK · all_count=16122, 5 rows matched, head top 5):

           code      name owner_code owner_name    ipo_time  warrant_type  current_price
    0  HK.11203  道指摩通六乙沽B    US..DJI      道琼斯指数  1781625600             2            0.0
    1  HK.11204  纳指摩通六乙沽C    US..NDX  纳斯达克100指数  1781625600             2            0.0
    2  HK.11205  道指摩通六乙沽C    US..DJI      道琼斯指数  1781625600             2            0.0
    3  HK.13826  老铺摩利六乙沽A   HK.06181       老铺黄金  1781625600             2            0.0
    4  HK.13827  港交摩利六乙沽A   HK.00388      香港交易所  1781625600             2            0.0
    
    1
    2
    3
    4
    5
    6
    # BUY_VOL(id=21 · interval · HK / SG / MY · return column buy_vol) Buy volume

    Unit: shares

    req.add_interval_filter(WarrantField.BUY_VOL, min_val=1)
    req.add_sort(WarrantField.BUY_VOL, desc=True)
    
    1
    2

    Measured response (HK · all_count=10554, 5 rows matched, head top 5):

           code        name owner_code owner_name   buy_vol  warrant_type  current_price
    0  HK.56746  恒指汇丰八甲牛V.C  HK.800000       恒生指数  41410000             3          0.065
    1  HK.56560  恒指摩通八三牛G.C  HK.800000       恒生指数  40730000             3          0.114
    2  HK.63929  恒指摩利八十牛E.C  HK.800000       恒生指数  40380000             3          0.102
    3  HK.64852  恒指瑞银八十牛G.C  HK.800000       恒生指数  40000000             3          0.131
    4  HK.29035  泡玛星展六甲沽A.P   HK.09992       泡泡玛特  40000000             2          0.071
    
    1
    2
    3
    4
    5
    6
    # SELL_VOL(id=22 · interval · HK / SG / MY · return column sell_vol) Sell volume

    Unit: shares

    req.add_interval_filter(WarrantField.SELL_VOL, min_val=1)
    req.add_sort(WarrantField.SELL_VOL, desc=True)
    
    1
    2

    Measured response (HK · all_count=11581, 5 rows matched, head top 5):

           code        name owner_code owner_name  sell_vol  warrant_type  current_price
    0  HK.26774  阿里法巴六七购B.C   HK.09988     阿里巴巴-W  60130000             1          0.010
    1  HK.29035  泡玛星展六甲沽A.P   HK.09992       泡泡玛特  37900000             2          0.071
    2  HK.55588  恒指汇丰九四熊D.P  HK.800000       恒生指数  34110000             4          0.055
    3  HK.56458  恒指摩通八九牛4.C  HK.800000       恒生指数  33830000             3          0.064
    4  HK.57114  恒指法兴八九牛7.C  HK.800000       恒生指数  33370000             3          0.054
    
    1
    2
    3
    4
    5
    6
    # EFFECTIVE_LEVERAGE(id=23 · interval · HK / SG / MY · return column effective_leverage) Effective leverage

    SDK takes the raw value (protocol field ×1000 integer-encoded on the wire)

    req.add_interval_filter(WarrantField.EFFECTIVE_LEVERAGE, min_val=3.0, max_val=50.0)
    req.add_sort(WarrantField.EFFECTIVE_LEVERAGE, desc=True)
    
    1
    2

    Measured response (HK · all_count=5409, 5 rows matched, head top 5):

           code        name owner_code owner_name  effective_leverage  warrant_type  current_price
    0  HK.23821  建行国君六六购A.C   HK.00939       建设银行              47.082             1          0.102
    1  HK.25486  华地信证六六购B.C   HK.01109       华润置地              45.821             1          0.010
    2  HK.23727  领展信证六六购A.C   HK.00823     领展房产基金              44.375             1          0.012
    3  HK.23398  建行麦银六六购A.C   HK.00939       建设银行              42.977             1          0.017
    4  HK.23575  华地摩通六六购A.C   HK.01109       华润置地              42.093             1          0.012
    
    1
    2
    3
    4
    5
    6
    # LAST_CLOSE_PRICE(id=24 · interval · HK / SG / MY · return column last_close_price) Previous close

    Unit: in currency; SDK takes the raw price (protocol field ×1000 integer-encoded on the wire)

    req.add_interval_filter(WarrantField.LAST_CLOSE_PRICE, min_val=0.1, max_val=2.0)
    req.add_sort(WarrantField.LAST_CLOSE_PRICE, desc=False)
    
    1
    2

    Measured response (HK · all_count=7028, 5 rows matched, head top 5):

           code        name owner_code owner_name  last_close_price  warrant_type  current_price
    0  HK.14210  腾讯花旗六乙沽A.P   HK.00700       腾讯控股               0.1             2          0.101
    1  HK.67749  阿里瑞银六六牛B.C   HK.09988     阿里巴巴-W               0.1             3          0.100
    2  HK.53182  平安汇丰七甲牛L.C   HK.02318       中国平安               0.1             3          0.107
    3  HK.69230  平安法兴七十牛U.C   HK.02318       中国平安               0.1             3          0.105
    4  HK.56325  恒指法兴八三牛8.C  HK.800000       恒生指数               0.1             3          0.119
    
    1
    2
    3
    4
    5
    6
    # TURNOVER(id=25 · interval · HK / SG / MY · return column turnover) Turnover

    Unit: in currency

    req.add_interval_filter(WarrantField.TURNOVER, min_val=1)
    req.add_sort(WarrantField.TURNOVER, desc=True)
    
    1
    2

    Measured response (HK · all_count=6093, 5 rows matched, head top 5):

           code        name owner_code owner_name     turnover  warrant_type  current_price
    0  HK.55994  恒指摩通九三熊R.P  HK.800000       恒生指数  864568920.0             4          0.056
    1  HK.57003  恒指摩通八九牛8.C  HK.800000       恒生指数  852463370.0             3          0.038
    2  HK.57109  恒指法兴八七牛E.C  HK.800000       恒生指数  842853250.0             3          0.037
    3  HK.55641  恒指法兴八三熊P.P  HK.800000       恒生指数  777372600.0             4          0.055
    4  HK.57114  恒指法兴八九牛7.C  HK.800000       恒生指数  608277730.0             3          0.054
    
    1
    2
    3
    4
    5
    6
    # SELL_PRICE(id=26 · interval · HK / SG / MY · return column sell_price) Ask price

    Unit: in currency; SDK takes the raw price (protocol field ×1000 integer-encoded on the wire)

    req.add_interval_filter(WarrantField.SELL_PRICE, min_val=0.001)
    req.add_sort(WarrantField.SELL_PRICE, desc=False)
    
    1
    2

    Measured response (HK · all_count=11581, 5 rows matched, head top 5):

           code        name owner_code owner_name  sell_price  warrant_type  current_price
    0  HK.23665  S金摩通六七购A.C   HK.02840      SPDR金        0.01             1           0.01
    1  HK.25680  百度麦银六七购A.C   HK.09888    百度集团-SW        0.01             1           0.01
    2  HK.27365  中交法兴六六购A.C   HK.01800     中国交通建设        0.01             1           0.01
    3  HK.28314  铁塔信证六九购A.C   HK.00788       中国铁塔        0.01             1           0.01
    4  HK.28806  协鑫麦银六九购A.C   HK.03800       协鑫科技        0.01             1           0.01
    
    1
    2
    3
    4
    5
    6
    # BUY_PRICE(id=27 · interval · HK / SG / MY · return column buy_price) Bid price

    Unit: in currency; SDK takes the raw price (protocol field ×1000 integer-encoded on the wire)

    req.add_interval_filter(WarrantField.BUY_PRICE, min_val=0.001)
    req.add_sort(WarrantField.BUY_PRICE, desc=False)
    
    1
    2

    Measured response (HK · all_count=10554, 5 rows matched, head top 5):

           code        name owner_code owner_name  buy_price  warrant_type  current_price
    0  HK.13598  小米摩通六乙购B.C   HK.01810     小米集团-W       0.01             1          0.010
    1  HK.14635  比迪星展六甲购A.C   HK.01211      比亚迪股份       0.01             1          0.010
    2  HK.14652  腾讯法兴六九购A.C   HK.00700       腾讯控股       0.01             1          0.011
    3  HK.16396  南科信证六乙购A.C   HK.03033     南方恒生科技       0.01             1          0.014
    4  HK.17724  泡玛汇丰六甲购A.C   HK.09992       泡泡玛特       0.01             1          0.012
    
    1
    2
    3
    4
    5
    6
    # HIGH_PRICE(id=28 · interval · HK / SG / MY · return column high_price) High price

    Unit: in currency; SDK takes the raw price; intraday high (protocol field ×1000 integer-encoded on the wire)

    req.add_interval_filter(WarrantField.HIGH_PRICE, min_val=0.001)
    req.add_sort(WarrantField.HIGH_PRICE, desc=True)
    
    1
    2

    Measured response (HK · all_count=6075, 5 rows matched, head top 5):

           code        name owner_code owner_name  high_price  warrant_type  current_price
    0  HK.11115  美光法兴六甲购A.C        N/A        N/A        6.74             1           6.74
    1  HK.24047  建板摩利六七购A.C   HK.01888      建滔积层板        6.47             1           6.47
    2  HK.25060  建滔华泰六八购B.C   HK.00148       建滔集团        5.67             1           5.65
    3  HK.16544  建板信证六十购A.C   HK.01888      建滔积层板        5.57             1           5.57
    4  HK.26175  建板汇丰六八购A.C   HK.01888      建滔积层板        5.44             1           5.44
    
    1
    2
    3
    4
    5
    6
    # LOW_PRICE(id=29 · interval · HK / SG / MY · return column low_price) Low price

    Unit: in currency; SDK takes the raw price; intraday low (protocol field ×1000 integer-encoded on the wire)

    req.add_interval_filter(WarrantField.LOW_PRICE, min_val=0.001)
    req.add_sort(WarrantField.LOW_PRICE, desc=False)
    
    1
    2

    Measured response (HK · all_count=6075, 5 rows matched, head top 5):

           code        name owner_code owner_name  low_price  warrant_type  current_price
    0  HK.28933  阿里麦银六七购A.C   HK.09988     阿里巴巴-W       0.01             1           0.01
    1  HK.29014  阿里法兴六六购A.C   HK.09988     阿里巴巴-W       0.01             1           0.01
    2  HK.13598  小米摩通六乙购B.C   HK.01810     小米集团-W       0.01             1           0.01
    3  HK.13662  中联麦银六九购A.C   HK.00762       中国联通       0.01             1           0.01
    4  HK.14148  腾讯汇丰六七购A.C   HK.00700       腾讯控股       0.01             1           0.01
    
    1
    2
    3
    4
    5
    6
    # RATIO_ITM_OTM(id=30 · interval · HK / SG / MY · return column ipop) ITM/OTM ratio %

    Unit: %; SDK takes the value as e.g. 15.0, negative allowed; returned column name is ipop (protocol field ×100000 integer-encoded on the wire)

    req.add_interval_filter(WarrantField.RATIO_ITM_OTM, min_val=-50.0, max_val=50.0)
    req.add_sort(WarrantField.RATIO_ITM_OTM, desc=False)
    
    1
    2

    Measured response (HK · all_count=16166, 5 rows matched, head top 5):

           code        name owner_code owner_name      ipop  warrant_type  current_price
    0  HK.21173  信达海通八七购A.C   HK.01359       中国信达 -41.74285             1          0.000
    1  HK.21158  华泥瑞信八七购A.C   HK.01313     华润建材科技 -41.68907             1          0.000
    2  HK.25100  喜相摩通六六购A.C   HK.02473      喜相逢集团 -37.67187             1          0.061
    3  HK.25841  喜相麦银六七购A.C   HK.02473      喜相逢集团 -37.64062             1          0.025
    4  HK.15946  信达瑞信七六购A.C   HK.01359       中国信达 -37.40952             1          0.000
    
    1
    2
    3
    4
    5
    6
    # BREAK_EVEN_POINT(id=31 · interval · HK / SG / MY · return column break_even_point) Break-even point %

    Unit: %; SDK takes the value as e.g. 15.0 (protocol field ×100000 integer-encoded on the wire)

    req.add_interval_filter(WarrantField.BREAK_EVEN_POINT, min_val=-100.0, max_val=100.0)
    req.add_sort(WarrantField.BREAK_EVEN_POINT, desc=False)
    
    1
    2

    Measured response (HK · all_count=11618, 5 rows matched, head top 5):

           code        name owner_code owner_name  break_even_point  warrant_type  current_price
    0  HK.21137  恒大中银八七购A.C        N/A        N/A               0.0             1          0.000
    1  HK.16449  恒生中银九乙购A.C        N/A        N/A               0.0             1          0.000
    2  HK.49942  道指汇丰六乙熊H.P    US..DJI      道琼斯指数               0.0             4          0.013
    3  HK.49950  道指瑞银六乙熊L.P    US..DJI      道琼斯指数               0.0             4          0.012
    4  HK.29859  东风麦银六六购A.C        N/A        N/A               0.0             1          0.720
    
    1
    2
    3
    4
    5
    6
    # AMPLITUDE(id=32 · interval · HK / SG / MY · return column amplitude) Amplitude %

    Unit: %; SDK takes the value as e.g. 15.0 (protocol field ×100000 integer-encoded on the wire)

    req.add_interval_filter(WarrantField.AMPLITUDE, min_val=0.01)
    req.add_sort(WarrantField.AMPLITUDE, desc=True)
    
    1
    2

    Measured response (HK · all_count=5358, 5 rows matched, head top 5):

           code        name owner_code owner_name  amplitude  warrant_type  current_price
    0  HK.23936  舜光信证六六购A.C   HK.02382     舜宇光学科技    3.80000             1          0.054
    1  HK.23432  舜光摩利六六购A.C   HK.02382     舜宇光学科技    3.27273             1          0.055
    2  HK.24022  舜光花旗六六购A.C   HK.02382     舜宇光学科技    3.00000             1          0.058
    3  HK.20335  江铜摩通六六购A.C   HK.00358     江西铜业股份    2.24390             1          0.181
    4  HK.61517  中芯法兴六甲牛H.C   HK.00981       中芯国际    2.00000             3          0.076
    
    1
    2
    3
    4
    5
    6
    # SCORE_FAXING(id=33 · interval · HK / SG / MY · return column fx_score) SG Faxing score

    SDK takes the raw score; returned column name is fx_score (protocol field ×100000 integer-encoded on the wire)

    req.add_interval_filter(WarrantField.SCORE_FAXING, min_val=0.0, max_val=10.0)
    req.add_sort(WarrantField.SCORE_FAXING, desc=True)
    
    1
    2

    Measured response (HK · all_count=16170, 5 rows matched, head top 5):

           code        name owner_code owner_name  fx_score  warrant_type  current_price
    0  HK.29442  中药法巴七五购A.C   HK.01177     中国生物制药   0.94860             1          0.071
    1  HK.13660  建滔法兴七一购B.C   HK.00148       建滔集团   0.94397             1          0.193
    2  HK.29636  美图摩通六甲购A.C   HK.01357       美图公司   0.93674             1          0.127
    3  HK.24961  中移摩通六九购A.C   HK.00941       中国移动   0.93553             1          0.070
    4  HK.21241  兖矿摩通六八购A.C   HK.01171       兖矿能源   0.93449             1          0.202
    
    1
    2
    3
    4
    5
    6
    # LAST_TRADE_DATE(id=34 · interval · HK / SG / MY · return column last_trade_date) Last trading day (Unix timestamp seconds)

    Unix timestamp in seconds; typically 1 trading day earlier than MATURITY_DATE

    req.add_interval_filter(WarrantField.LAST_TRADE_DATE,
                            min_val=1900000000, max_val=2200000000)
    req.add_sort(WarrantField.LAST_TRADE_DATE, desc=False)
    
    1
    2
    3

    Measured response (HK · all_count=1, 1 rows matched, head top 5):

           code        name owner_code owner_name  last_trade_date  warrant_type  current_price
    0  HK.29183  建行法巴零乙购A.C   HK.00939       建设银行       1924272000             1          0.237
    
    1
    2
    # STREET_VOLUME(id=35 · interval · HK / SG / MY · return column street_vol) Street volume

    Unit: shares; returned column name is street_vol

    req.add_interval_filter(WarrantField.STREET_VOLUME, min_val=1)
    req.add_sort(WarrantField.STREET_VOLUME, desc=True)
    
    1
    2

    Measured response (HK · all_count=11611, 5 rows matched, head top 5):

           code        name owner_code owner_name  street_vol  warrant_type  current_price
    0  HK.14958  腾讯法兴六七购A.C   HK.00700       腾讯控股   400000000             1          0.010
    1  HK.14826  腾讯摩通六七购A.C   HK.00700       腾讯控股   398760000             1          0.010
    2  HK.25097  腾讯摩通六九购A.C   HK.00700       腾讯控股   319360000             1          0.012
    3  HK.13039  小米摩通六乙购A.C   HK.01810     小米集团-W   306960000             1          0.017
    4  HK.14148  腾讯汇丰六七购A.C   HK.00700       腾讯控股   300000000             1          0.010
    
    1
    2
    3
    4
    5
    6
    # LOT_SIZE(id=36 · interval · HK / SG / MY · return column lot_size) Lot size

    Unit: shares

    req.add_interval_filter(WarrantField.LOT_SIZE, min_val=1)
    req.add_sort(WarrantField.LOT_SIZE, desc=False)
    
    1
    2

    Measured response (HK · all_count=16170, 5 rows matched, head top 5):

           code        name owner_code owner_name  lot_size  warrant_type  current_price
    0  HK.22588  万科麦银六六购B.C   HK.02202       万科企业       100             1          0.010
    1  HK.24402  航赁麦银六七购A.C   HK.02588     中银航空租赁       100             1          0.019
    2  HK.24702  航赁华泰六七购A.C   HK.02588     中银航空租赁       100             1          0.010
    3  HK.27072  蔚来麦银六九沽A.P   HK.09866      蔚来-SW       100             2          0.071
    4  HK.19866  南科华泰六六购A.C   HK.03033     南方恒生科技       200             1          0.010
    
    1
    2
    3
    4
    5
    6
    # ISSUE_SIZE(id=37 · interval · HK / SG / MY · return column issue_size) Issue size

    Unit: shares

    req.add_interval_filter(WarrantField.ISSUE_SIZE, min_val=1)
    req.add_sort(WarrantField.ISSUE_SIZE, desc=True)
    
    1
    2

    Measured response (HK · all_count=16170, 5 rows matched, head top 5):

           code        name owner_code owner_name  issue_size  warrant_type  current_price
    0  HK.22659  阿里韩投八乙购A.C   HK.09988     阿里巴巴-W   500000000             1          0.370
    1  HK.16737  宁德法兴七乙购A.C   HK.03750       宁德时代   500000000             1          0.880
    2  HK.13850    恒指摩通六乙沽C  HK.800000       恒生指数   500000000             2          0.000
    3  HK.22235  港交韩投八八购A.C   HK.00388      香港交易所   480000000             1          0.325
    4  HK.22254  中移韩投八八购A.C   HK.00941       中国移动   480000000             1          0.162
    
    1
    2
    3
    4
    5
    6
    # IPO_PRICE(id=38 · interval · HK / SG / MY · return column ipo_price) IPO price

    Unit: in currency; SDK takes the raw price (protocol field ×1000 integer-encoded on the wire)

    req.add_interval_filter(WarrantField.IPO_PRICE, min_val=0.001)
    req.add_sort(WarrantField.IPO_PRICE, desc=False)
    
    1
    2

    Measured response (HK · all_count=0, 0 rows matched): no data. Reason: OpenD measurements show ipo_price returns 0 for most warrants, so min_val=0.001 filters out all rows

    # LOWER_STRIKE_PRICE(id=39 · interval · HK / SG / MY · return column lower_strike_price) Lower strike price

    Unit: in currency; SDK takes the raw price; effective only for Inline (5) (protocol field ×1000 integer-encoded on the wire)

    req.add_choice_filter(WarrantField.WARRANT_TYPE, [WarrantType.IW])
    req.add_interval_filter(WarrantField.LOWER_STRIKE_PRICE, min_val=0.001)
    req.add_sort(WarrantField.LOWER_STRIKE_PRICE, desc=False)
    
    1
    2
    3

    Measured response (HK · all_count=0, 0 rows matched): no data. Reason: No inline warrants (IW) are currently listed on HK; the warrant-type filter returns no rows

    # UPPER_STRIKE_PRICE(id=40 · interval · HK / SG / MY · return column upper_strike_price) Upper strike price

    Unit: in currency; SDK takes the raw price; effective only for Inline (5) (protocol field ×1000 integer-encoded on the wire)

    req.add_choice_filter(WarrantField.WARRANT_TYPE, [WarrantType.IW])
    req.add_interval_filter(WarrantField.UPPER_STRIKE_PRICE, min_val=0.001)
    req.add_sort(WarrantField.UPPER_STRIKE_PRICE, desc=False)
    
    1
    2
    3

    Measured response (HK · all_count=0, 0 rows matched): no data. Reason: No inline warrants (IW) are currently listed on HK; the warrant-type filter returns no rows

    # IW_PRICE_STATUS(id=41 · choice · HK / SG / MY · return column iw_price_status) Inside/outside the band

    0=Outside 1=Inside; only Inline (5) returns non-zero values

    req.add_choice_filter(WarrantField.WARRANT_TYPE, [WarrantType.IW])
    
    1

    Measured response (HK · all_count=0, 0 rows matched): no data. Reason: No inline warrants (IW) are currently listed on HK; the warrant-type filter returns no rows

    # SENSITIVITY(id=42 · interval · HK / SG / MY · return column sensitivity) Sensitivity

    SDK takes the raw value (protocol field ×1000 integer-encoded on the wire)

    req.add_interval_filter(WarrantField.SENSITIVITY, min_val=0.001)
    req.add_sort(WarrantField.SENSITIVITY, desc=False)
    
    1
    2

    Measured response (HK · all_count=13623, 5 rows matched, head top 5):

           code        name owner_code owner_name  sensitivity  warrant_type  current_price
    0  HK.19340  腾音信证六九购A.C   HK.01698    腾讯音乐-SW        0.018             1          0.010
    1  HK.28495  稀宇麦银六十购B.C   HK.00100  MINIMAX-W        0.019             1          0.013
    2  HK.51984  美团瑞银七乙熊G.P   HK.03690       美团-W        0.020             4          0.275
    3  HK.52261  美团法巴七七熊K.P   HK.03690       美团-W        0.020             4          0.280
    4  HK.52532  美团瑞银七乙熊H.P   HK.03690       美团-W        0.020             4          0.310
    
    1
    2
    3
    4
    5
    6
    # CONVERSION_PRICE(id=43 · interval · HK / SG / MY · no return column) Conversion price

    Not exposed separately in the returned DataFrame; usable as a filter / sort condition

    req.add_interval_filter(WarrantField.CONVERSION_PRICE, min_val=0.001)
    req.add_sort(WarrantField.CONVERSION_PRICE, desc=False)
    
    1
    2

    Measured response (HK · all_count=16170, 5 rows matched, head top 5):

           code        name owner_code owner_name  warrant_type  current_price
    0  HK.64814  平安瑞银八三牛A.C   HK.02318       中国平安             3            0.0
    1  HK.15946  信达瑞信七六购A.C   HK.01359       中国信达             1            0.0
    2  HK.24719    腾讯东亚九四沽A   HK.00700       腾讯控股             2            0.0
    3  HK.26168    金软瑞银九二购B   HK.03888       金山软件             1            0.0
    4  HK.64492  恒指汇丰八五熊G.P  HK.800000       恒生指数             3            0.0
    
    1
    2
    3
    4
    5
    6
    # CHANGE_RATE(id=44 · interval · HK / SG / MY · no return column) Change rate %

    Unit: %; SDK takes the value as e.g. 5.0; not exposed separately in the returned DataFrame (protocol field ×1000 integer-encoded on the wire)

    req.add_interval_filter(WarrantField.CHANGE_RATE, min_val=-100.0, max_val=100.0)
    req.add_sort(WarrantField.CHANGE_RATE, desc=True)
    
    1
    2

    Measured response (HK · all_count=16170, 5 rows matched, head top 5):

           code        name owner_code owner_name  warrant_type  current_price
    0  HK.25160  远能华泰六七购B.C   HK.01138       中远海能             1          0.136
    1  HK.23936  舜光信证六六购A.C   HK.02382     舜宇光学科技             1          0.054
    2  HK.25876  远能华泰六八购A.C   HK.01138       中远海能             1          0.093
    3  HK.23432  舜光摩利六六购A.C   HK.02382     舜宇光学科技             1          0.055
    4  HK.26285  远能华泰六九购B.C   HK.01138       中远海能             1          0.048
    
    1
    2
    3
    4
    5
    6
    # CHANGE_VALUE(id=45 · interval · HK / SG / MY · no return column) Change value

    Unit: in currency; not exposed separately in the returned DataFrame

    req.add_interval_filter(WarrantField.CHANGE_VALUE, min_val=-1.0, max_val=1.0)
    req.add_sort(WarrantField.CHANGE_VALUE, desc=True)
    
    1
    2

    Measured response (HK · all_count=7641, 5 rows matched, head top 5):

           code        name owner_code owner_name  warrant_type  current_price
    0  HK.25336  铁塔摩利六乙购A.C   HK.00788       中国铁塔             1          0.017
    1  HK.25366  铁塔摩通六乙购A.C   HK.00788       中国铁塔             1          0.028
    2  HK.26138  铁塔中银六乙购A.C   HK.00788       中国铁塔             1          0.027
    3  HK.26447  中铁法兴六九购A.C   HK.00390       中国中铁             1          0.020
    4  HK.67330  京东摩通六乙牛A.C   HK.09618    京东集团-SW             3          0.216
    
    1
    2
    3
    4
    5
    6
    # SCORE(id=51 · interval · HK / SG / MY · return column score) Warrant score

    Composite score; SDK takes the raw score (protocol field ×100000 integer-encoded on the wire)

    req.add_interval_filter(WarrantField.SCORE, min_val=0.0, max_val=10.0)
    req.add_sort(WarrantField.SCORE, desc=True)
    
    1
    2

    Measured response (HK · all_count=16170, 5 rows matched, head top 5):

           code        name owner_code owner_name  score  warrant_type  current_price
    0  HK.11048  澳港摩通六七购A.C        N/A        N/A  0.010             1          0.195
    1  HK.11056  欧港摩通六七购A.C        N/A        N/A  0.009             1          0.016
    2  HK.49582  标指摩通六九牛B.C    US..SPX    标普500指数  0.009             3          0.193
    3  HK.10087  美日摩通六六购A.C  FX.USDJPY      美元/日元  0.008             1          0.073
    4  HK.11047  澳港摩通六七沽A.P        N/A        N/A  0.008             2          0.013
    
    1
    2
    3
    4
    5
    6
    # FILTER_NO_TRADE(id=52 · choice · HK / SG / MY · return column current_price) Filter out no-trade warrants

    Switch field: 0=no filter, 1=filter out warrants with zero volume; no data column returned

    req.add_choice_filter(WarrantField.FILTER_NO_TRADE, [1])
    req.add_sort(WarrantField.VOLUME, desc=True)
    
    1
    2

    Measured response (HK · all_count=15151, 5 rows matched, head top 5):

           code        name owner_code owner_name  current_price  warrant_type
    0  HK.55994  恒指摩通九三熊R.P  HK.800000       恒生指数          0.056             4
    1  HK.55641  恒指法兴八三熊P.P  HK.800000       恒生指数          0.055             4
    2  HK.57109  恒指法兴八七牛E.C  HK.800000       恒生指数          0.037             3
    3  HK.57003  恒指摩通八九牛8.C  HK.800000       恒生指数          0.038             3
    4  HK.55430  恒指瑞银八十熊B.P  HK.800000       恒生指数          0.053             4
    
    1
    2
    3
    4
    5
    6
    # CURRENCY_CODE(id=53 · choice · HK / SG / MY · no return column) Currency code

    Usually determined by market (HK=HKD, SG=SGD, MY=MYR); not exposed separately in the returned DataFrame

    req.add_sort(WarrantField.TURNOVER, desc=True)
    
    1

    Measured response (HK · all_count=16170, 5 rows matched, head top 5):

           code        name owner_code owner_name  warrant_type  current_price
    0  HK.55994  恒指摩通九三熊R.P  HK.800000       恒生指数             4          0.056
    1  HK.57003  恒指摩通八九牛8.C  HK.800000       恒生指数             3          0.038
    2  HK.57109  恒指法兴八七牛E.C  HK.800000       恒生指数             3          0.037
    3  HK.55641  恒指法兴八三熊P.P  HK.800000       恒生指数             4          0.055
    4  HK.57114  恒指法兴八九牛7.C  HK.800000       恒生指数             3          0.054
    
    1
    2
    3
    4
    5
    6
    # STOCK_OWNER_PRICE(id=54 · interval · HK / SG / MY · return column stock_owner_price) Underlying stock price

    Unit: in currency; SDK takes the raw price; returned in the stock_owner_price column (protocol field ×1000 integer-encoded on the wire)

    req.add_interval_filter(WarrantField.STOCK_OWNER_PRICE, min_val=0.001)
    req.add_sort(WarrantField.STOCK_OWNER_PRICE, desc=False)
    
    1
    2

    Measured response (HK · all_count=16168, 5 rows matched, head top 5):

           code        name owner_code owner_name  stock_owner_price  warrant_type  current_price
    0  HK.16376  碧桂法巴九十购A.C   HK.02007        碧桂园              0.209             1          0.000
    1  HK.16468  中粮麦银九甲购A.C   HK.00606       中骏商管              0.295             1          0.000
    2  HK.19876  喜相华泰六八购A.C   HK.02473      喜相逢集团              0.640             1          0.010
    3  HK.25841  喜相麦银六七购A.C   HK.02473      喜相逢集团              0.640             1          0.025
    4  HK.29782  喜相华泰六六购A.C   HK.02473      喜相逢集团              0.640             1          0.010
    
    1
    2
    3
    4
    5
    6

Interface Limitations

  • A maximum of 60 requests per 30 seconds