# 篩選窩輪
- Python
- Proto
- C#
- Java
- C++
- JavaScript
get_warrant(stock_owner='', req=None)
介紹
篩選窩輪(僅用於篩選香港市場的窩輪、牛熊證、界內證)
參數
參數 類型 説明 stock_owner str 所屬正股的股票代碼 req WarrantRequest 篩選參數組合 - WarrantRequest 類型欄位説明如下:
欄位 類型 説明 begin int 數據起始點 num int 請求數據個數 最大 200sort_field SortField 根據哪個欄位排序 ascend bool 排序方向 True:升序
False:降序type_list list 窩輪類型過濾列表 list 中元素類型是 WrtTypeissuer_list list 發行人過濾列表 list 中元素類型是 Issuermaturity_time_min str 到期日過濾範圍的開始時間 maturity_time_max str 到期日過濾範圍的結束時間 ipo_period IpoPeriod 上市時段 price_type PriceType 價內/價外 暫不支援界內證的界內外篩選status WarrantStatus 窩輪狀態 cur_price_min float 最新價的過濾下限 閉區間
不傳代表下限為 -∞
精確到小數點後 3 位,超出部分會被捨棄cur_price_max float 最新價的過濾上限 閉區間
不傳代表上限為 +∞
精確到小數點後 3 位,超出部分會被捨棄strike_price_min float 行使價的過濾下限 閉區間
不傳代表下限為 -∞
精確到小數點後 3 位,超出部分會被捨棄strike_price_max float 行使價的過濾上限 閉區間
不傳代表上限為 +∞
精確到小數點後 3 位,超出部分會被捨棄street_min float 街貨佔比的過濾下限 閉區間
不傳代表下限為 -∞
該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。
精確到小數點後 3 位,超出部分會被捨棄street_max float 街貨佔比的過濾上限 閉區間
不傳代表上限為 +∞
該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。
精確到小數點後 3 位,超出部分會被捨棄conversion_min float 換股比率的過濾下限 閉區間
不傳代表下限為 -∞
精確到小數點後 3 位,超出部分會被捨棄conversion_max float 換股比率的過濾上限 閉區間
不傳代表上限為 +∞
精確到小數點後 3 位,超出部分會被捨棄vol_min int 成交量的過濾下限 閉區間
不傳代表下限為 -∞vol_max int 成交量的過濾上限 閉區間
不傳代表上限為 +∞premium_min float 溢價的過濾下限 閉區間
不傳代表下限為 -∞
該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。
精確到小數點後 3 位,超出部分會被捨棄premium_max float 溢價的過濾上限 閉區間
不傳代表上限為 +∞
該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。
精確到小數點後 3 位,超出部分會被捨棄leverage_ratio_min float 槓桿比率的過濾下限 閉區間
不傳代表下限為 -∞
精確到小數點後 3 位,超出部分會被捨棄leverage_ratio_max float 槓桿比率的過濾上限 閉區間
不傳代表上限為 +∞delta_min float 對沖值的過濾下限 閉區間
僅認購認沽支援此欄位過濾
不傳代表下限為 -∞
精確到小數點後 3 位,超出部分會被捨棄delta_max float 對沖值的過濾上限 閉區間
僅認購認沽支援此欄位過濾
不傳代表上限為 +∞
精確到小數點後 3 位,超出部分會被捨棄implied_min float 引伸波幅的過濾下限 閉區間
僅認購認沽支援此欄位過濾
不傳代表下限為 -∞
精確到小數點後 3 位,超出部分會被捨棄implied_max float 引伸波幅的過濾上限 閉區間
僅認購認沽支援此欄位過濾
不傳代表上限為 +∞
精確到小數點後 3 位,超出部分會被捨棄recovery_price_min float 收回價的過濾下限 閉區間
僅牛熊證支援此欄位過濾
不傳代表下限為 -∞
精確到小數點後 3 位,超出部分會被捨棄recovery_price_max float 收回價的過濾上限 閉區間
僅牛熊證支援此欄位過濾
不傳代表上限為 +∞
精確到小數點後 3 位,超出部分會被捨棄price_recovery_ratio_min float 正股距收回價的過濾下限 閉區間
僅牛熊證支援此欄位過濾
該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%
不傳代表下限為 -∞
精確到小數點後 3 位,超出部分會被捨棄price_recovery_ratio_max float 正股距收回價的過濾上限 閉區間
僅牛熊證支援此欄位過濾
該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%
不傳代表上限為 +∞
精確到小數點後 3 位,超出部分會被捨棄
- WarrantRequest 類型欄位説明如下:
返回
參數 類型 説明 ret RET_CODE 介面呼叫結果 data tuple 當 ret == RET_OK,返回窩輪數據 str 當 ret != RET_OK,返回錯誤描述 窩輪數據組成如下:
欄位 類型 説明 warrant_data_list pd.DataFrame 篩選後的窩輪數據 last_page bool 是否是最後一頁 True:是最後一頁
False:不是最後一頁all_count int 篩選結果中的窩輪總數量 - warrant_data_list 返回的 pd dataframe 數據格式:
欄位 類型 説明 stock str 窩輪代碼 stock_owner str 所屬正股 type WrtType 窩輪類型 issuer Issuer 發行人 maturity_time str 到期日 格式:yyyy-MM-ddlist_time str 上市時間 格式:yyyy-MM-ddlast_trade_time str 最後交易日 格式:yyyy-MM-ddrecovery_price float 收回價 僅牛熊證支援此欄位conversion_ratio float 換股比率 lot_size int 每手數量 strike_price float 行使價 last_close_price float 昨收價 name str 名稱 cur_price float 當前價 price_change_val float 漲跌額 status WarrantStatus 窩輪狀態 bid_price float 買入價 ask_price float 賣出價 bid_vol int 買量 ask_vol int 賣量 volume int 成交量 turnover float 成交額 score float 綜合評分 premium float 溢價 該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%break_even_point float 打和點 leverage float 槓桿比率 單位:倍ipop float 價內/價外 該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%price_recovery_ratio float 正股距收回價 僅牛熊證支援此欄位
該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%conversion_price float 換股價 street_rate float 街貨佔比 該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%street_vol int 街貨量 amplitude float 振幅 該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%issue_size int 發行量 high_price float 最高價 low_price float 最低價 implied_volatility float 引伸波幅 僅認購認沽支援此欄位delta float 對沖值 僅認購認沽支援此欄位effective_leverage float 有效槓桿 僅認購認沽支援此欄位upper_strike_price float 上限價 僅界內證支援此欄位lower_strike_price float 下限價 僅界內證支援此欄位inline_price_status PriceType 界內界外 僅界內證支援此欄位
- warrant_data_list 返回的 pd dataframe 數據格式:
Example
from futu import *
quote_ctx = OpenQuoteContext(host='127.0.0.1', port=11111)
req = WarrantRequest()
req.sort_field = SortField.TURNOVER
req.type_list = WrtType.CALL
req.cur_price_min = 0.1
req.cur_price_max = 0.2
ret, ls = quote_ctx.get_warrant("HK.00700", req)
if ret == RET_OK: # 先判斷介面返回是否正常,再取數據
warrant_data_list, last_page, all_count = ls
print(len(warrant_data_list), all_count, warrant_data_list)
print(warrant_data_list['stock'][0]) # 取第一條的窩輪代碼
print(warrant_data_list['stock'].values.tolist()) # 轉為 list
else:
print('error: ', ls)
req = WarrantRequest()
req.sort_field = SortField.TURNOVER
req.issuer_list = ['UB','CS','BI']
ret, ls = quote_ctx.get_warrant(Market.HK, req)
if ret == RET_OK:
warrant_data_list, last_page, all_count = ls
print(len(warrant_data_list), all_count, warrant_data_list)
else:
print('error: ', ls)
quote_ctx.close() # 所有介面結尾加上這條 close,防止連線條數用盡
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
- Output
2 2
stock name stock_owner type issuer maturity_time list_time last_trade_time recovery_price conversion_ratio lot_size strike_price last_close_price cur_price price_change_val change_rate status bid_price ask_price bid_vol ask_vol volume turnover score premium break_even_point leverage ipop price_recovery_ratio conversion_price street_rate street_vol amplitude issue_size high_price low_price implied_volatility delta effective_leverage list_timestamp last_trade_timestamp maturity_timestamp upper_strike_price lower_strike_price inline_price_status
0 HK.20306 騰訊麥銀零乙購A.C HK.00700 CALL MB 2020-12-01 2019-06-27 2020-11-25 NaN 50.0 5000 588.88 0.188 0.188 0.000 0.000000 NORMAL 0.000 0.188 0 10000 0 0.0 0.198 2.008 598.28 62.393 -0.404 NaN 9.40 4.400 1584000 0.000 36000000 0.000 0.000 31.751 0.479 29.886 1.561565e+09 1.606234e+09 1.606752e+09 NaN NaN NaN
1 HK.16545 騰訊法興一二購B.C HK.00700 CALL SG 2021-02-26 2020-07-14 2021-02-22 NaN 100.0 10000 700.00 0.147 0.144 -0.003 -2.040816 NORMAL 0.141 0.144 28000000 28000000 0 0.0 81.506 21.807 714.40 40.729 -16.214 NaN 14.40 1.420 2130000 0.000 150000000 0.000 0.000 40.643 0.226 9.204 1.594656e+09 1.613923e+09 1.614269e+09 NaN NaN NaN
HK.20306
['HK.20306', 'HK.16545']
200 358
stock name stock_owner type issuer maturity_time list_time last_trade_time recovery_price conversion_ratio lot_size strike_price last_close_price cur_price price_change_val change_rate status bid_price ask_price bid_vol ask_vol volume turnover score premium break_even_point leverage ipop price_recovery_ratio conversion_price street_rate street_vol amplitude issue_size high_price low_price implied_volatility delta effective_leverage list_timestamp last_trade_timestamp maturity_timestamp upper_strike_price lower_strike_price inline_price_status
0 HK.19839 平安瑞銀零乙購A.C HK.02318 CALL UB 2020-12-31 2017-12-11 2020-12-24 NaN 100.0 50000 83.88 0.057 0.046 -0.011 -19.298246 NORMAL 0.043 0.046 30000000 30000000 0 0.0 39.641 1.642 88.480 18.923 3.779 NaN 4.600 1.25 6250000 0.0 500000000 0.0 0.0 25.129 0.692 13.094 1.512922e+09 1.608739e+09 1.609344e+09 NaN NaN NaN
1 HK.20084 平安中銀零乙購A.C HK.02318 CALL BI 2020-12-31 2017-12-19 2020-12-24 NaN 100.0 50000 83.88 0.059 0.050 -0.009 -15.254237 NORMAL 0.044 0.050 10000000 10000000 0 0.0 0.064 2.102 88.880 17.410 3.779 NaN 5.000 0.07 350000 0.0 500000000 0.0 0.0 29.174 0.672 11.699 1.513613e+09 1.608739e+09 1.609344e+09 NaN NaN NaN
......
198 HK.56886 恒指瑞銀三一牛F.C HK.800000 BULL UB 2023-01-30 2020-03-24 2023-01-27 21200.0 20000.0 10000 21100.00 0.230 0.232 0.002 0.869565 NORMAL 0.232 0.233 30000000 30000000 0 0.0 46.627 -2.884 25740.000 5.712 25.613 25.021179 4640.000 0.01 40000 0.0 400000000 0.0 0.0 NaN NaN 5.712 1.584979e+09 1.674749e+09 1.675008e+09 NaN NaN NaN
199 HK.56895 小米瑞銀零乙牛D.C HK.01810 BULL UB 2020-12-30 2020-03-24 2020-12-29 8.0 10.0 2000 7.60 2.010 1.930 -0.080 -3.980100 NORMAL 1.910 1.930 6000000 6000000 0 0.0 0.040 0.938 26.900 1.380 250.657 233.125000 19.300 0.10 60000 0.0 60000000 0.0 0.0 NaN NaN 1.380 1.584979e+09 1.609171e+09 1.609258e+09 NaN NaN NaN
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Qot_GetWarrant.proto
介紹
篩選窩輪(僅用於香港市場)
參數
message C2S
{
required int32 begin = 1; //數據起始點
required int32 num = 2; //請求數據個數,最大200
required int32 sortField = 3;//Qot_Common.SortField,根據哪個欄位排序
required bool ascend = 4;//升序 ture,降序 false
//以下為篩選條件,可選欄位,不填表示不過濾
optional Qot_Common.Security owner = 5; //所屬正股
repeated int32 typeList = 6; //Qot_Common.WarrantType,窩輪類型過濾列表
repeated int32 issuerList = 7; //Qot_Common.Issuer,發行人過濾列表
optional string maturityTimeMin = 8; //到期日,到期日範圍的開始時間戳
optional string maturityTimeMax = 9; //到期日範圍的結束時間戳
optional int32 ipoPeriod = 10; //Qot_Common.IpoPeriod,上市日
optional int32 priceType = 11; //Qot_Common.PriceType,價內/價外(暫不支援界內證的界內外篩選)
optional int32 status = 12; //Qot_Common.WarrantStatus,窩輪狀態
optional double curPriceMin = 13; //最新價的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double curPriceMax = 14; //最新價的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double strikePriceMin = 15; //行使價的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double strikePriceMax = 16; //行使價的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double streetMin = 17; //街貨佔比的過濾下限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double streetMax = 18; //街貨佔比的過濾上限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double conversionMin = 19; //換股比率的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double conversionMax = 20; //換股比率的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional uint64 volMin = 21; //成交量的過濾下限(閉區間),不傳代表下限為 -∞
optional uint64 volMax = 22; //成交量的過濾上限(閉區間),不傳代表上限為 +∞
optional double premiumMin = 23; //溢價的過濾下限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double premiumMax = 24; //溢價的過濾上限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double leverageRatioMin = 25; //槓桿比率的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double leverageRatioMax = 26; //槓桿比率的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double deltaMin = 27;//對沖值的過濾下限(閉區間),僅認購認沽支援此欄位過濾,不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double deltaMax = 28;//對沖值的過濾上限(閉區間),僅認購認沽支援此欄位過濾,不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double impliedMin = 29; //引伸波幅的過濾下限(閉區間),僅認購認沽支援此欄位過濾,不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double impliedMax = 30; //引伸波幅的過濾上限(閉區間),僅認購認沽支援此欄位過濾,不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double recoveryPriceMin = 31; //收回價的過濾下限(閉區間),僅牛熊證支援此欄位過濾,不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double recoveryPriceMax = 32; //收回價的過濾上限(閉區間),僅牛熊證支援此欄位過濾,不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double priceRecoveryRatioMin = 33;//正股距收回價,的過濾下限(閉區間),僅牛熊證支援此欄位過濾。該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double priceRecoveryRatioMax = 34;//正股距收回價,的過濾上限(閉區間),僅牛熊證支援此欄位過濾。該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
}
message Request
{
required C2S c2s = 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
- 股票結構參見 Security
- 排序類型參見 SortField
- 窩輪類型過濾列表參見 WarrantType
- 發行人過濾列表參見 Issuer
- 上市日類型參見 IpoPeriod
- 價內價外類型參見 PriceType
- 窩輪狀態類型參見 WarrantStatus
- 返回
message WarrantData
{
//靜態數據項
required Qot_Common.Security stock = 1; //股票
required Qot_Common.Security owner = 2; //所屬正股
required int32 type = 3; //Qot_Common.WarrantType,窩輪類型
required int32 issuer = 4; //Qot_Common.Issuer,發行人
required string maturityTime = 5; //到期日
optional double maturityTimestamp = 6; //到期日時間戳
required string listTime = 7; //上市時間(格式:yyyy-MM-dd)
optional double listTimestamp = 8; //上市時間戳
required string lastTradeTime = 9; //最後交易日
optional double lastTradeTimestamp = 10; //最後交易日時間戳
optional double recoveryPrice = 11; //收回價,僅牛熊證支援此欄位
required double conversionRatio = 12; //換股比率
required int32 lotSize = 13; //每手數量
required double strikePrice = 14; //行使價
required double lastClosePrice = 15; //昨收價
required string name = 16; //名稱
//動態數據項
required double curPrice = 17; //當前價
required double priceChangeVal = 18; //漲跌額
required double changeRate = 19; //漲跌幅(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required int32 status = 20; //Qot_Common.WarrantStatus,窩輪狀態
required double bidPrice = 21; //買入價
required double askPrice = 22; //賣出價
required int64 bidVol = 23; //買量
required int64 askVol = 24; //賣量
required int64 volume = 25; //成交量
required double turnover = 26; //成交額
required double score = 27; //綜合評分
required double premium = 28; //溢價(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required double breakEvenPoint = 29; //打和點
required double leverage = 30; //槓桿比率(倍)
required double ipop = 31; //價內/價外,正數表示價內,負數表示價外(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
optional double priceRecoveryRatio = 32; //正股距收回價,僅牛熊證支援此欄位(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required double conversionPrice = 33; //換股價
required double streetRate = 34; //街貨佔比(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required int64 streetVol = 35; //街貨量
required double amplitude = 36; //振幅(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required int64 issueSize = 37; //發行量
required double highPrice = 39; //最高價
required double lowPrice = 40; //最低價
optional double impliedVolatility = 41; //引申波幅,僅認購認沽支援此欄位
optional double delta = 42; //對沖值,僅認購認沽支援此欄位
required double effectiveLeverage = 43; //有效槓桿
optional double upperStrikePrice = 44; //上限價,僅界內證支援此欄位
optional double lowerStrikePrice = 45; //下限價,僅界內證支援此欄位
optional int32 inLinePriceStatus = 46; //Qot_Common.PriceType,界內界外,僅界內證支援此欄位
}
message S2C
{
required bool lastPage = 1; //是否最後一頁了,false:非最後一頁,還有窩輪記錄未返回; true:已是最後一頁
required int32 allCount = 2; //該條件請求所有數據的個數
repeated WarrantData warrantDataList = 3; //窩輪數據
}
message Response
{
required int32 retType = 1 [default = -400]; //RetType,返回結果
optional string retMsg = 2;
optional int32 errCode = 3;
optional S2C s2c = 4;
}
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
- 股票結構參見 Security
- 窩輪類型過濾列表參見 WarrantType
- 發行人過濾列表參見 Issuer
- 價內價外類型參見 PriceType
- 窩輪狀態類型參見 WarrantStatus
- 介面呼叫結果,結構參見 RetType
協議 ID
3210
uint GetWarrant(QotGetWarrant.Request req);
virtual void OnReply_GetWarrant(FTAPI_Conn client, uint nSerialNo, QotGetWarrant.Response rsp);
介紹
篩選窩輪(僅用於香港市場)
參數
message C2S
{
required int32 begin = 1; //數據起始點
required int32 num = 2; //請求數據個數,最大200
required int32 sortField = 3;//Qot_Common.SortField,根據哪個欄位排序
required bool ascend = 4;//升序 ture,降序 false
//以下為篩選條件,可選欄位,不填表示不過濾
optional Qot_Common.Security owner = 5; //所屬正股
repeated int32 typeList = 6; //Qot_Common.WarrantType,窩輪類型過濾列表
repeated int32 issuerList = 7; //Qot_Common.Issuer,發行人過濾列表
optional string maturityTimeMin = 8; //到期日,到期日範圍的開始時間戳
optional string maturityTimeMax = 9; //到期日範圍的結束時間戳
optional int32 ipoPeriod = 10; //Qot_Common.IpoPeriod,上市日
optional int32 priceType = 11; //Qot_Common.PriceType,價內/價外(暫不支援界內證的界內外篩選)
optional int32 status = 12; //Qot_Common.WarrantStatus,窩輪狀態
optional double curPriceMin = 13; //最新價的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double curPriceMax = 14; //最新價的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double strikePriceMin = 15; //行使價的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double strikePriceMax = 16; //行使價的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double streetMin = 17; //街貨佔比的過濾下限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double streetMax = 18; //街貨佔比的過濾上限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double conversionMin = 19; //換股比率的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double conversionMax = 20; //換股比率的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional uint64 volMin = 21; //成交量的過濾下限(閉區間),不傳代表下限為 -∞
optional uint64 volMax = 22; //成交量的過濾上限(閉區間),不傳代表上限為 +∞
optional double premiumMin = 23; //溢價的過濾下限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double premiumMax = 24; //溢價的過濾上限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double leverageRatioMin = 25; //槓桿比率的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double leverageRatioMax = 26; //槓桿比率的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double deltaMin = 27;//對沖值的過濾下限(閉區間),僅認購認沽支援此欄位過濾,不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double deltaMax = 28;//對沖值的過濾上限(閉區間),僅認購認沽支援此欄位過濾,不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double impliedMin = 29; //引伸波幅的過濾下限(閉區間),僅認購認沽支援此欄位過濾,不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double impliedMax = 30; //引伸波幅的過濾上限(閉區間),僅認購認沽支援此欄位過濾,不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double recoveryPriceMin = 31; //收回價的過濾下限(閉區間),僅牛熊證支援此欄位過濾,不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double recoveryPriceMax = 32; //收回價的過濾上限(閉區間),僅牛熊證支援此欄位過濾,不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double priceRecoveryRatioMin = 33;//正股距收回價,的過濾下限(閉區間),僅牛熊證支援此欄位過濾。該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double priceRecoveryRatioMax = 34;//正股距收回價,的過濾上限(閉區間),僅牛熊證支援此欄位過濾。該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
}
message Request
{
required C2S c2s = 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
- 股票結構參見 Security
- 排序類型參見 SortField
- 窩輪類型過濾列表參見 WarrantType
- 發行人過濾列表參見 Issuer
- 上市日類型參見 IpoPeriod
- 價內價外類型參見 PriceType
- 窩輪狀態類型參見 WarrantStatus
- 返回
message WarrantData
{
//靜態數據項
required Qot_Common.Security stock = 1; //股票
required Qot_Common.Security owner = 2; //所屬正股
required int32 type = 3; //Qot_Common.WarrantType,窩輪類型
required int32 issuer = 4; //Qot_Common.Issuer,發行人
required string maturityTime = 5; //到期日
optional double maturityTimestamp = 6; //到期日時間戳
required string listTime = 7; //上市時間(格式:yyyy-MM-dd)
optional double listTimestamp = 8; //上市時間戳
required string lastTradeTime = 9; //最後交易日
optional double lastTradeTimestamp = 10; //最後交易日時間戳
optional double recoveryPrice = 11; //收回價,僅牛熊證支援此欄位
required double conversionRatio = 12; //換股比率
required int32 lotSize = 13; //每手數量
required double strikePrice = 14; //行使價
required double lastClosePrice = 15; //昨收價
required string name = 16; //名稱
//動態數據項
required double curPrice = 17; //當前價
required double priceChangeVal = 18; //漲跌額
required double changeRate = 19; //漲跌幅(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required int32 status = 20; //Qot_Common.WarrantStatus,窩輪狀態
required double bidPrice = 21; //買入價
required double askPrice = 22; //賣出價
required int64 bidVol = 23; //買量
required int64 askVol = 24; //賣量
required int64 volume = 25; //成交量
required double turnover = 26; //成交額
required double score = 27; //綜合評分
required double premium = 28; //溢價(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required double breakEvenPoint = 29; //打和點
required double leverage = 30; //槓桿比率(倍)
required double ipop = 31; //價內/價外,正數表示價內,負數表示價外(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
optional double priceRecoveryRatio = 32; //正股距收回價,僅牛熊證支援此欄位(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required double conversionPrice = 33; //換股價
required double streetRate = 34; //街貨佔比(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required int64 streetVol = 35; //街貨量
required double amplitude = 36; //振幅(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required int64 issueSize = 37; //發行量
required double highPrice = 39; //最高價
required double lowPrice = 40; //最低價
optional double impliedVolatility = 41; //引申波幅,僅認購認沽支援此欄位
optional double delta = 42; //對沖值,僅認購認沽支援此欄位
required double effectiveLeverage = 43; //有效槓桿
optional double upperStrikePrice = 44; //上限價,僅界內證支援此欄位
optional double lowerStrikePrice = 45; //下限價,僅界內證支援此欄位
optional int32 inLinePriceStatus = 46; //Qot_Common.PriceType,界內界外,僅界內證支援此欄位
}
message S2C
{
required bool lastPage = 1; //是否最後一頁了,false:非最後一頁,還有窩輪記錄未返回; true:已是最後一頁
required int32 allCount = 2; //該條件請求所有數據的個數
repeated WarrantData warrantDataList = 3; //窩輪數據
}
message Response
{
required int32 retType = 1 [default = -400]; //RetType,返回結果
optional string retMsg = 2;
optional int32 errCode = 3;
optional S2C s2c = 4;
}
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
- 股票結構參見 Security
- 窩輪類型過濾列表參見 WarrantType
- 發行人過濾列表參見 Issuer
- 價內價外類型參見 PriceType
- 窩輪狀態類型參見 WarrantStatus
- 介面呼叫結果,結構參見 RetType
- Example
public class Program : FTSPI_Qot, FTSPI_Conn {
FTAPI_Qot qot = new FTAPI_Qot();
public Program() {
qot.SetClientInfo("csharp", 1); //設定用戶端資訊
qot.SetConnCallback(this); //設定連線回呼
qot.SetQotCallback(this); //設定交易回呼
}
public void Start() {
qot.InitConnect("127.0.0.1", (ushort)11111, false);
}
public void OnInitConnect(FTAPI_Conn client, long errCode, String desc)
{
Console.Write("Qot onInitConnect: ret={0} desc={1} connID={2}\n", errCode, desc, client.GetConnectID());
if (errCode != 0)
return;
QotGetWarrant.C2S c2s = QotGetWarrant.C2S.CreateBuilder()
.SetBegin(0)
.SetNum(50)
.SetSortField((int)QotCommon.SortField.SortField_Code)
.SetAscend(true)
.Build();
QotGetWarrant.Request req = QotGetWarrant.Request.CreateBuilder().SetC2S(c2s).Build();
uint seqNo = qot.GetWarrant(req);
Console.Write("Send QotGetWarrant: {0}\n", seqNo);
}
public void OnDisconnect(FTAPI_Conn client, long errCode) {
Console.Write("Qot onDisConnect: {0}\n", errCode);
}
public void OnReply_GetWarrant(FTAPI_Conn client, uint nSerialNo, QotGetWarrant.Response rsp)
{
Console.Write("Reply: QotGetWarrant: {0}\n", nSerialNo);
Console.Write("retMsg: {0}\n", rsp.RetMsg);
Console.Write("name: {0}, type: {1}\n", rsp.S2C.WarrantDataListList[0].Name,
rsp.S2C.WarrantDataListList[0].Type);
}
public static void Main(String[] args) {
FTAPI.Init();
Program qot = new Program();
qot.Start();
while (true)
Thread.Sleep(1000 * 600);
}
}
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
51
52
53
- Output
Qot onInitConnect: ret=0 desc= connID=6825714488755091916
Send QotGetWarrant: 3
Reply: QotGetWarrant: 3
retMsg:
name: 騰訊麥銀零乙購A.C, type: 1
2
3
4
5
int getWarrant(QotGetWarrant.Request req);
void onReply_GetWarrant(FTAPI_Conn client, int nSerialNo, QotGetWarrant.Response rsp);
介紹
篩選窩輪(僅用於香港市場)
參數
message C2S
{
required int32 begin = 1; //數據起始點
required int32 num = 2; //請求數據個數,最大200
required int32 sortField = 3;//Qot_Common.SortField,根據哪個欄位排序
required bool ascend = 4;//升序 ture,降序 false
//以下為篩選條件,可選欄位,不填表示不過濾
optional Qot_Common.Security owner = 5; //所屬正股
repeated int32 typeList = 6; //Qot_Common.WarrantType,窩輪類型過濾列表
repeated int32 issuerList = 7; //Qot_Common.Issuer,發行人過濾列表
optional string maturityTimeMin = 8; //到期日,到期日範圍的開始時間戳
optional string maturityTimeMax = 9; //到期日範圍的結束時間戳
optional int32 ipoPeriod = 10; //Qot_Common.IpoPeriod,上市日
optional int32 priceType = 11; //Qot_Common.PriceType,價內/價外(暫不支援界內證的界內外篩選)
optional int32 status = 12; //Qot_Common.WarrantStatus,窩輪狀態
optional double curPriceMin = 13; //最新價的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double curPriceMax = 14; //最新價的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double strikePriceMin = 15; //行使價的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double strikePriceMax = 16; //行使價的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double streetMin = 17; //街貨佔比的過濾下限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double streetMax = 18; //街貨佔比的過濾上限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double conversionMin = 19; //換股比率的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double conversionMax = 20; //換股比率的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional uint64 volMin = 21; //成交量的過濾下限(閉區間),不傳代表下限為 -∞
optional uint64 volMax = 22; //成交量的過濾上限(閉區間),不傳代表上限為 +∞
optional double premiumMin = 23; //溢價的過濾下限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double premiumMax = 24; //溢價的過濾上限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double leverageRatioMin = 25; //槓桿比率的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double leverageRatioMax = 26; //槓桿比率的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double deltaMin = 27;//對沖值的過濾下限(閉區間),僅認購認沽支援此欄位過濾,不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double deltaMax = 28;//對沖值的過濾上限(閉區間),僅認購認沽支援此欄位過濾,不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double impliedMin = 29; //引伸波幅的過濾下限(閉區間),僅認購認沽支援此欄位過濾,不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double impliedMax = 30; //引伸波幅的過濾上限(閉區間),僅認購認沽支援此欄位過濾,不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double recoveryPriceMin = 31; //收回價的過濾下限(閉區間),僅牛熊證支援此欄位過濾,不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double recoveryPriceMax = 32; //收回價的過濾上限(閉區間),僅牛熊證支援此欄位過濾,不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double priceRecoveryRatioMin = 33;//正股距收回價,的過濾下限(閉區間),僅牛熊證支援此欄位過濾。該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double priceRecoveryRatioMax = 34;//正股距收回價,的過濾上限(閉區間),僅牛熊證支援此欄位過濾。該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
}
message Request
{
required C2S c2s = 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
- 股票結構參見 Security
- 排序類型參見 SortField
- 窩輪類型過濾列表參見 WarrantType
- 發行人過濾列表參見 Issuer
- 上市日類型參見 IpoPeriod
- 價內價外類型參見 PriceType
- 窩輪狀態類型參見 WarrantStatus
- 返回
message WarrantData
{
//靜態數據項
required Qot_Common.Security stock = 1; //股票
required Qot_Common.Security owner = 2; //所屬正股
required int32 type = 3; //Qot_Common.WarrantType,窩輪類型
required int32 issuer = 4; //Qot_Common.Issuer,發行人
required string maturityTime = 5; //到期日
optional double maturityTimestamp = 6; //到期日時間戳
required string listTime = 7; //上市時間(格式:yyyy-MM-dd)
optional double listTimestamp = 8; //上市時間戳
required string lastTradeTime = 9; //最後交易日
optional double lastTradeTimestamp = 10; //最後交易日時間戳
optional double recoveryPrice = 11; //收回價,僅牛熊證支援此欄位
required double conversionRatio = 12; //換股比率
required int32 lotSize = 13; //每手數量
required double strikePrice = 14; //行使價
required double lastClosePrice = 15; //昨收價
required string name = 16; //名稱
//動態數據項
required double curPrice = 17; //當前價
required double priceChangeVal = 18; //漲跌額
required double changeRate = 19; //漲跌幅(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required int32 status = 20; //Qot_Common.WarrantStatus,窩輪狀態
required double bidPrice = 21; //買入價
required double askPrice = 22; //賣出價
required int64 bidVol = 23; //買量
required int64 askVol = 24; //賣量
required int64 volume = 25; //成交量
required double turnover = 26; //成交額
required double score = 27; //綜合評分
required double premium = 28; //溢價(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required double breakEvenPoint = 29; //打和點
required double leverage = 30; //槓桿比率(倍)
required double ipop = 31; //價內/價外,正數表示價內,負數表示價外(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
optional double priceRecoveryRatio = 32; //正股距收回價,僅牛熊證支援此欄位(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required double conversionPrice = 33; //換股價
required double streetRate = 34; //街貨佔比(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required int64 streetVol = 35; //街貨量
required double amplitude = 36; //振幅(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required int64 issueSize = 37; //發行量
required double highPrice = 39; //最高價
required double lowPrice = 40; //最低價
optional double impliedVolatility = 41; //引申波幅,僅認購認沽支援此欄位
optional double delta = 42; //對沖值,僅認購認沽支援此欄位
required double effectiveLeverage = 43; //有效槓桿
optional double upperStrikePrice = 44; //上限價,僅界內證支援此欄位
optional double lowerStrikePrice = 45; //下限價,僅界內證支援此欄位
optional int32 inLinePriceStatus = 46; //Qot_Common.PriceType,界內界外,僅界內證支援此欄位
}
message S2C
{
required bool lastPage = 1; //是否最後一頁了,false:非最後一頁,還有窩輪記錄未返回; true:已是最後一頁
required int32 allCount = 2; //該條件請求所有數據的個數
repeated WarrantData warrantDataList = 3; //窩輪數據
}
message Response
{
required int32 retType = 1 [default = -400]; //RetType,返回結果
optional string retMsg = 2;
optional int32 errCode = 3;
optional S2C s2c = 4;
}
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
- 股票結構參見 Security
- 窩輪類型過濾列表參見 WarrantType
- 發行人過濾列表參見 Issuer
- 價內價外類型參見 PriceType
- 窩輪狀態類型參見 WarrantStatus
- 介面呼叫結果,結構參見 RetType
- Example
public class QotDemo implements FTSPI_Qot, FTSPI_Conn {
FTAPI_Conn_Qot qot = new FTAPI_Conn_Qot();
public QotDemo() {
qot.setClientInfo("javaclient", 1); //設定用戶端資訊
qot.setConnSpi(this); //設定連線回呼
qot.setQotSpi(this); //設定交易回呼
}
public void start() {
qot.initConnect("127.0.0.1", (short)11111, false);
}
@Override
public void onInitConnect(FTAPI_Conn client, long errCode, String desc)
{
System.out.printf("Qot onInitConnect: ret=%b desc=%s connID=%d\n", errCode, desc, client.getConnectID());
if (errCode != 0)
return;
QotGetWarrant.C2S c2s = QotGetWarrant.C2S.newBuilder()
.setBegin(0)
.setNum(50)
.setSortField(QotCommon.SortField.SortField_Code_VALUE)
.setAscend(true)
.build();
QotGetWarrant.Request req = QotGetWarrant.Request.newBuilder().setC2S(c2s).build();
int seqNo = qot.getWarrant(req);
System.out.printf("Send QotGetWarrant: %d\n", seqNo);
}
@Override
public void onDisconnect(FTAPI_Conn client, long errCode) {
System.out.printf("Qot onDisConnect: %d\n", errCode);
}
@Override
public void onReply_GetWarrant(FTAPI_Conn client, int nSerialNo, QotGetWarrant.Response rsp) {
if (rsp.getRetType() != 0) {
System.out.printf("QotGetWarrant failed: %s\n", rsp.getRetMsg());
}
else {
try {
String json = JsonFormat.printer().print(rsp);
System.out.printf("Receive QotGetWarrant: %s\n", json);
} catch (InvalidProtocolBufferException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
FTAPI.init();
QotDemo qot = new QotDemo();
qot.start();
while (true) {
try {
Thread.sleep(1000 * 600);
} catch (InterruptedException exc) {
}
}
}
}
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
- Output
Send QotGetWarrant: 2
Receive QotGetWarrant: {
"retType": 0,
"retMsg": "",
"errCode": 0,
"s2c": {
"lastPage": false,
"allCount": 15552,
"warrantDataList": [{
"stock": {
"market": 1,
"code": "10071"
},
"owner": {
"market": 11,
"code": ".DJI"
},
"type": 2,
"issuer": 7,
"maturityTime": "2021-06-18",
"maturityTimestamp": 1.6239456E9,
"listTime": "2020-11-10",
"listTimestamp": 1.6049376E9,
"lastTradeTime": "2021-06-11",
"lastTradeTimestamp": 1.6233408E9,
"conversionRatio": 66000.0,
"lotSize": 10000,
"strikePrice": 25000.0,
"lastClosePrice": 0.01,
"name": "道指滙豐一六沽B.P",
"curPrice": 0.01,
"priceChangeVal": 0.0,
"changeRate": 0.0,
"status": 3,
"bidPrice": 0.0,
"askPrice": 0.0,
"bidVol": "0",
"askVol": "0",
"volume": "0",
"turnover": 0.0,
"score": 0.02,
"premium": 0.0,
"breakEvenPoint": 24340.0,
"leverage": 0.0,
"ipop": 100.0,
"conversionPrice": 660.0,
"streetRate": 6.54,
"streetVol": "13080000",
"amplitude": 0.0,
"issueSize": "200000000",
"highPrice": 0.0,
"lowPrice": 0.0,
"impliedVolatility": 0.0,
"delta": 0.0,
"effectiveLeverage": 0.0
}, ... {
"stock": {
"market": 1,
"code": "11047"
},
"owner": {
"market": 1,
"code": "01211"
},
"type": 2,
"issuer": 21,
"maturityTime": "2021-11-26",
"maturityTimestamp": 1.637856E9,
"listTime": "2021-05-17",
"listTimestamp": 1.6211808E9,
"lastTradeTime": "2021-11-22",
"lastTradeTimestamp": 1.6375104E9,
"conversionRatio": 50.0,
"lotSize": 25000,
"strikePrice": 121.0,
"lastClosePrice": 0.026,
"name": "比迪瑞通一甲沽A.P",
"curPrice": 0.026,
"priceChangeVal": 0.0,
"changeRate": 0.0,
"status": 1,
"bidPrice": 0.026,
"askPrice": 0.029,
"bidVol": "125000",
"askVol": "600000",
"volume": "0",
"turnover": 0.0,
"score": 0.008,
"premium": 47.407,
"breakEvenPoint": 119.7,
"leverage": 175.076,
"ipop": -88.099,
"conversionPrice": 1.3,
"streetRate": 2.25,
"streetVol": "900000",
"amplitude": 0.0,
"issueSize": "40000000",
"highPrice": 0.0,
"lowPrice": 0.0,
"impliedVolatility": 58.629,
"delta": -0.032,
"effectiveLeverage": -5.602
}]
}
}
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
Futu::u32_t GetWarrant(const Qot_GetWarrant::Request &stReq);
virtual void OnReply_GetWarrant(Futu::u32_t nSerialNo, const Qot_GetWarrant::Response &stRsp) = 0;
介紹
篩選窩輪(僅用於香港市場)
參數
message C2S
{
required int32 begin = 1; //數據起始點
required int32 num = 2; //請求數據個數,最大200
required int32 sortField = 3;//Qot_Common.SortField,根據哪個欄位排序
required bool ascend = 4;//升序 ture,降序 false
//以下為篩選條件,可選欄位,不填表示不過濾
optional Qot_Common.Security owner = 5; //所屬正股
repeated int32 typeList = 6; //Qot_Common.WarrantType,窩輪類型過濾列表
repeated int32 issuerList = 7; //Qot_Common.Issuer,發行人過濾列表
optional string maturityTimeMin = 8; //到期日,到期日範圍的開始時間戳
optional string maturityTimeMax = 9; //到期日範圍的結束時間戳
optional int32 ipoPeriod = 10; //Qot_Common.IpoPeriod,上市日
optional int32 priceType = 11; //Qot_Common.PriceType,價內/價外(暫不支援界內證的界內外篩選)
optional int32 status = 12; //Qot_Common.WarrantStatus,窩輪狀態
optional double curPriceMin = 13; //最新價的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double curPriceMax = 14; //最新價的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double strikePriceMin = 15; //行使價的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double strikePriceMax = 16; //行使價的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double streetMin = 17; //街貨佔比的過濾下限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double streetMax = 18; //街貨佔比的過濾上限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double conversionMin = 19; //換股比率的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double conversionMax = 20; //換股比率的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional uint64 volMin = 21; //成交量的過濾下限(閉區間),不傳代表下限為 -∞
optional uint64 volMax = 22; //成交量的過濾上限(閉區間),不傳代表上限為 +∞
optional double premiumMin = 23; //溢價的過濾下限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double premiumMax = 24; //溢價的過濾上限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double leverageRatioMin = 25; //槓桿比率的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double leverageRatioMax = 26; //槓桿比率的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double deltaMin = 27;//對沖值的過濾下限(閉區間),僅認購認沽支援此欄位過濾,不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double deltaMax = 28;//對沖值的過濾上限(閉區間),僅認購認沽支援此欄位過濾,不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double impliedMin = 29; //引伸波幅的過濾下限(閉區間),僅認購認沽支援此欄位過濾,不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double impliedMax = 30; //引伸波幅的過濾上限(閉區間),僅認購認沽支援此欄位過濾,不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double recoveryPriceMin = 31; //收回價的過濾下限(閉區間),僅牛熊證支援此欄位過濾,不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double recoveryPriceMax = 32; //收回價的過濾上限(閉區間),僅牛熊證支援此欄位過濾,不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double priceRecoveryRatioMin = 33;//正股距收回價,的過濾下限(閉區間),僅牛熊證支援此欄位過濾。該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double priceRecoveryRatioMax = 34;//正股距收回價,的過濾上限(閉區間),僅牛熊證支援此欄位過濾。該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
}
message Request
{
required C2S c2s = 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
- 股票結構參見 Security
- 排序類型參見 SortField
- 窩輪類型過濾列表參見 WarrantType
- 發行人過濾列表參見 Issuer
- 上市日類型參見 IpoPeriod
- 價內價外類型參見 PriceType
- 窩輪狀態類型參見 WarrantStatus
- 返回
message WarrantData
{
//靜態數據項
required Qot_Common.Security stock = 1; //股票
required Qot_Common.Security owner = 2; //所屬正股
required int32 type = 3; //Qot_Common.WarrantType,窩輪類型
required int32 issuer = 4; //Qot_Common.Issuer,發行人
required string maturityTime = 5; //到期日
optional double maturityTimestamp = 6; //到期日時間戳
required string listTime = 7; //上市時間(格式:yyyy-MM-dd)
optional double listTimestamp = 8; //上市時間戳
required string lastTradeTime = 9; //最後交易日
optional double lastTradeTimestamp = 10; //最後交易日時間戳
optional double recoveryPrice = 11; //收回價,僅牛熊證支援此欄位
required double conversionRatio = 12; //換股比率
required int32 lotSize = 13; //每手數量
required double strikePrice = 14; //行使價
required double lastClosePrice = 15; //昨收價
required string name = 16; //名稱
//動態數據項
required double curPrice = 17; //當前價
required double priceChangeVal = 18; //漲跌額
required double changeRate = 19; //漲跌幅(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required int32 status = 20; //Qot_Common.WarrantStatus,窩輪狀態
required double bidPrice = 21; //買入價
required double askPrice = 22; //賣出價
required int64 bidVol = 23; //買量
required int64 askVol = 24; //賣量
required int64 volume = 25; //成交量
required double turnover = 26; //成交額
required double score = 27; //綜合評分
required double premium = 28; //溢價(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required double breakEvenPoint = 29; //打和點
required double leverage = 30; //槓桿比率(倍)
required double ipop = 31; //價內/價外,正數表示價內,負數表示價外(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
optional double priceRecoveryRatio = 32; //正股距收回價,僅牛熊證支援此欄位(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required double conversionPrice = 33; //換股價
required double streetRate = 34; //街貨佔比(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required int64 streetVol = 35; //街貨量
required double amplitude = 36; //振幅(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required int64 issueSize = 37; //發行量
required double highPrice = 39; //最高價
required double lowPrice = 40; //最低價
optional double impliedVolatility = 41; //引申波幅,僅認購認沽支援此欄位
optional double delta = 42; //對沖值,僅認購認沽支援此欄位
required double effectiveLeverage = 43; //有效槓桿
optional double upperStrikePrice = 44; //上限價,僅界內證支援此欄位
optional double lowerStrikePrice = 45; //下限價,僅界內證支援此欄位
optional int32 inLinePriceStatus = 46; //Qot_Common.PriceType,界內界外,僅界內證支援此欄位
}
message S2C
{
required bool lastPage = 1; //是否最後一頁了,false:非最後一頁,還有窩輪記錄未返回; true:已是最後一頁
required int32 allCount = 2; //該條件請求所有數據的個數
repeated WarrantData warrantDataList = 3; //窩輪數據
}
message Response
{
required int32 retType = 1 [default = -400]; //RetType,返回結果
optional string retMsg = 2;
optional int32 errCode = 3;
optional S2C s2c = 4;
}
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
- 股票結構參見 Security
- 窩輪類型過濾列表參見 WarrantType
- 發行人過濾列表參見 Issuer
- 價內價外類型參見 PriceType
- 窩輪狀態類型參見 WarrantStatus
- 介面呼叫結果,結構參見 RetType
- Example
class Program : public FTSPI_Qot, public FTSPI_Trd, public FTSPI_Conn
{
public:
Program() {
m_pQotApi = FTAPI::CreateQotApi();
m_pQotApi->RegisterQotSpi(this);
m_pQotApi->RegisterConnSpi(this);
}
~Program() {
if (m_pQotApi != nullptr)
{
m_pQotApi->UnregisterQotSpi();
m_pQotApi->UnregisterConnSpi();
FTAPI::ReleaseQotApi(m_pQotApi);
m_pQotApi = nullptr;
}
}
void Start() {
m_pQotApi->InitConnect("127.0.0.1", 11111, false);
}
virtual void OnInitConnect(FTAPI_Conn* pConn, Futu::i64_t nErrCode, const char* strDesc) {
cout << "connect" << endl;
// 組包
Qot_GetWarrant::Request req;
Qot_GetWarrant::C2S *c2s = req.mutable_c2s();
c2s->set_begin(0);
c2s->set_num(50);
c2s->set_sortfield(1);
c2s->set_ascend(false);
m_GetWarrantSerialNo = m_pQotApi->GetWarrant(req);
cout << "Request GetWarrant SerialNo: " << m_GetWarrantSerialNo << endl;
}
virtual void OnReply_GetWarrant(Futu::u32_t nSerialNo, const Qot_GetWarrant::Response &stRsp){
if(nSerialNo == m_GetWarrantSerialNo)
{
cout << "OnReply_GetWarrant SerialNo:" << nSerialNo << endl;
// 解析內部結構列印出來
// ProtoBufToBodyData和UTF8ToLocal函數的定義參見Sample中的tool.h檔案
string resp_str;
ProtoBufToBodyData(stRsp, resp_str);
cout << UTF8ToLocal(resp_str) << endl;
}
}
protected:
FTAPI_Qot *m_pQotApi;
Futu::u32_t m_GetWarrantSerialNo;
};
int32_t main(int32_t argc, char** argv)
{
FTAPI::Init();
{
Program program;
program.Start();
getchar();
}
protobuf::ShutdownProtobufLibrary();
FTAPI::UnInit();
return 0;
}
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
- Output
connect
Request GetWarrant SerialNo: 4
OnReply_GetWarrant SerialNo: 4
{
"retType": 0,
"retMsg": "",
"errCode": 0,
"s2c": {
"lastPage": false,
"allCount": 15684,
"warrantDataList": [
{
"stock": {
"market": 1,
"code": "69999"
},
"owner": {
"market": 1,
"code": "01211"
},
"type": 3,
"issuer": 1,
"maturityTime": "2022-02-28",
"maturityTimestamp": 1645977600,
"listTime": "2021-06-11",
"listTimestamp": 1623340800,
"lastTradeTime": "2022-02-25",
"lastTradeTimestamp": 1645718400,
"recoveryPrice": 193,
"conversionRatio": 500,
"lotSize": 25000,
"strikePrice": 189,
"lastClosePrice": 0,
"name": "比迪法興二二牛P",
"curPrice": 0,
"priceChangeVal": 0,
"changeRate": 0,
"status": 4,
"bidPrice": 0,
"askPrice": 0,
"bidVol": "0",
"askVol": "0",
"volume": "0",
"turnover": 0,
"score": 0,
"premium": -5.782,
"breakEvenPoint": 189,
"leverage": 0,
"ipop": 6.137,
"priceRecoveryRatio": 3.9378238341968879,
"conversionPrice": 0,
"streetRate": 0,
"streetVol": "0",
"amplitude": 0,
"issueSize": "150000000",
"highPrice": 0,
"lowPrice": 0,
"effectiveLeverage": 0
},
...
{
"stock": {
"market": 1,
"code": "69897"
},
"owner": {
"market": 1,
"code": "00700"
},
"type": 4,
"issuer": 3,
"maturityTime": "2021-12-30",
"maturityTimestamp": 1640793600,
"listTime": "2021-06-11",
"listTimestamp": 1623340800,
"lastTradeTime": "2021-12-29",
"lastTradeTimestamp": 1640707200,
"recoveryPrice": 608,
"conversionRatio": 500,
"lotSize": 5000,
"strikePrice": 610.8,
"lastClosePrice": 0,
"name": "騰訊瑞信一乙熊G",
"curPrice": 0,
"priceChangeVal": 0,
"changeRate": 0,
"status": 4,
"bidPrice": 0,
"askPrice": 0,
"bidVol": "0",
"askVol": "0",
"volume": "0",
"turnover": 0,
"score": 0,
"premium": -1.125,
"breakEvenPoint": 610.8,
"leverage": 0,
"ipop": 1.113,
"priceRecoveryRatio": -0.6578947368421052,
"conversionPrice": 0,
"streetRate": 0,
"streetVol": "0",
"amplitude": 0,
"issueSize": "100000000",
"highPrice": 0,
"lowPrice": 0,
"effectiveLeverage": 0
}
]
}
}
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
GetWarrant(req);
介紹
篩選窩輪(僅用於香港市場)
參數
message C2S
{
required int32 begin = 1; //數據起始點
required int32 num = 2; //請求數據個數,最大200
required int32 sortField = 3;//Qot_Common.SortField,根據哪個欄位排序
required bool ascend = 4;//升序 ture,降序 false
//以下為篩選條件,可選欄位,不填表示不過濾
optional Qot_Common.Security owner = 5; //所屬正股
repeated int32 typeList = 6; //Qot_Common.WarrantType,窩輪類型過濾列表
repeated int32 issuerList = 7; //Qot_Common.Issuer,發行人過濾列表
optional string maturityTimeMin = 8; //到期日,到期日範圍的開始時間戳
optional string maturityTimeMax = 9; //到期日範圍的結束時間戳
optional int32 ipoPeriod = 10; //Qot_Common.IpoPeriod,上市日
optional int32 priceType = 11; //Qot_Common.PriceType,價內/價外(暫不支援界內證的界內外篩選)
optional int32 status = 12; //Qot_Common.WarrantStatus,窩輪狀態
optional double curPriceMin = 13; //最新價的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double curPriceMax = 14; //最新價的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double strikePriceMin = 15; //行使價的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double strikePriceMax = 16; //行使價的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double streetMin = 17; //街貨佔比的過濾下限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double streetMax = 18; //街貨佔比的過濾上限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double conversionMin = 19; //換股比率的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double conversionMax = 20; //換股比率的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional uint64 volMin = 21; //成交量的過濾下限(閉區間),不傳代表下限為 -∞
optional uint64 volMax = 22; //成交量的過濾上限(閉區間),不傳代表上限為 +∞
optional double premiumMin = 23; //溢價的過濾下限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double premiumMax = 24; //溢價的過濾上限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double leverageRatioMin = 25; //槓桿比率的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double leverageRatioMax = 26; //槓桿比率的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double deltaMin = 27;//對沖值的過濾下限(閉區間),僅認購認沽支援此欄位過濾,不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double deltaMax = 28;//對沖值的過濾上限(閉區間),僅認購認沽支援此欄位過濾,不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double impliedMin = 29; //引伸波幅的過濾下限(閉區間),僅認購認沽支援此欄位過濾,不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double impliedMax = 30; //引伸波幅的過濾上限(閉區間),僅認購認沽支援此欄位過濾,不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double recoveryPriceMin = 31; //收回價的過濾下限(閉區間),僅牛熊證支援此欄位過濾,不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double recoveryPriceMax = 32; //收回價的過濾上限(閉區間),僅牛熊證支援此欄位過濾,不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double priceRecoveryRatioMin = 33;//正股距收回價,的過濾下限(閉區間),僅牛熊證支援此欄位過濾。該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double priceRecoveryRatioMax = 34;//正股距收回價,的過濾上限(閉區間),僅牛熊證支援此欄位過濾。該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
}
message Request
{
required C2S c2s = 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
- 股票結構參見 Security
- 排序類型參見 SortField
- 窩輪類型過濾列表參見 WarrantType
- 發行人過濾列表參見 Issuer
- 上市日類型參見 IpoPeriod
- 價內價外類型參見 PriceType
- 窩輪狀態類型參見 WarrantStatus
- 返回
message WarrantData
{
//靜態數據項
required Qot_Common.Security stock = 1; //股票
required Qot_Common.Security owner = 2; //所屬正股
required int32 type = 3; //Qot_Common.WarrantType,窩輪類型
required int32 issuer = 4; //Qot_Common.Issuer,發行人
required string maturityTime = 5; //到期日
optional double maturityTimestamp = 6; //到期日時間戳
required string listTime = 7; //上市時間(格式:yyyy-MM-dd)
optional double listTimestamp = 8; //上市時間戳
required string lastTradeTime = 9; //最後交易日
optional double lastTradeTimestamp = 10; //最後交易日時間戳
optional double recoveryPrice = 11; //收回價,僅牛熊證支援此欄位
required double conversionRatio = 12; //換股比率
required int32 lotSize = 13; //每手數量
required double strikePrice = 14; //行使價
required double lastClosePrice = 15; //昨收價
required string name = 16; //名稱
//動態數據項
required double curPrice = 17; //當前價
required double priceChangeVal = 18; //漲跌額
required double changeRate = 19; //漲跌幅(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required int32 status = 20; //Qot_Common.WarrantStatus,窩輪狀態
required double bidPrice = 21; //買入價
required double askPrice = 22; //賣出價
required int64 bidVol = 23; //買量
required int64 askVol = 24; //賣量
required int64 volume = 25; //成交量
required double turnover = 26; //成交額
required double score = 27; //綜合評分
required double premium = 28; //溢價(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required double breakEvenPoint = 29; //打和點
required double leverage = 30; //槓桿比率(倍)
required double ipop = 31; //價內/價外,正數表示價內,負數表示價外(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
optional double priceRecoveryRatio = 32; //正股距收回價,僅牛熊證支援此欄位(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required double conversionPrice = 33; //換股價
required double streetRate = 34; //街貨佔比(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required int64 streetVol = 35; //街貨量
required double amplitude = 36; //振幅(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required int64 issueSize = 37; //發行量
required double highPrice = 39; //最高價
required double lowPrice = 40; //最低價
optional double impliedVolatility = 41; //引申波幅,僅認購認沽支援此欄位
optional double delta = 42; //對沖值,僅認購認沽支援此欄位
required double effectiveLeverage = 43; //有效槓桿
optional double upperStrikePrice = 44; //上限價,僅界內證支援此欄位
optional double lowerStrikePrice = 45; //下限價,僅界內證支援此欄位
optional int32 inLinePriceStatus = 46; //Qot_Common.PriceType,界內界外,僅界內證支援此欄位
}
message S2C
{
required bool lastPage = 1; //是否最後一頁了,false:非最後一頁,還有窩輪記錄未返回; true:已是最後一頁
required int32 allCount = 2; //該條件請求所有數據的個數
repeated WarrantData warrantDataList = 3; //窩輪數據
}
message Response
{
required int32 retType = 1 [default = -400]; //RetType,返回結果
optional string retMsg = 2;
optional int32 errCode = 3;
optional S2C s2c = 4;
}
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
- 股票結構參見 Security
- 窩輪類型過濾列表參見 WarrantType
- 發行人過濾列表參見 Issuer
- 價內價外類型參見 PriceType
- 窩輪狀態類型參見 WarrantStatus
- 介面呼叫結果,結構參見 RetType
- Example
import ftWebsocket from "futu-api";
import { ftCmdID } from "futu-api";
import { Common, Qot_Common } from "futu-api/proto";
import beautify from "js-beautify";
function QotGetWarrant(){
const { RetType } = Common
const { SortField, QotMarket } = Qot_Common
let [addr, port, enable_ssl, key] = ["127.0.0.1", 33333, false, '7522027ccf5a06b1'];
let websocket = new ftWebsocket();
websocket.onlogin = (ret, msg)=>{
if (ret) { // 登入成功
const req = {
c2s: {
begin: 0,
num: 2,
sortField: SortField.SortField_CurPrice,
ascend: true,
owner:{
market: QotMarket.QotMarket_HK_Security,
code: "00700",
},
},
};
websocket.GetWarrant(req)
.then((res) => {
let { errCode, retMsg, retType,s2c } = res
console.log("Warrant: errCode %d, retMsg %s, retType %d", errCode, retMsg, retType);
if(retType == RetType.RetType_Succeed){
let data = beautify(JSON.stringify(s2c), {
indent_size: 2,
space_in_empty_paren: true,
});
console.log(data);
}
})
.catch((error) => {
console.log("error:", error);
});
} else {
console.log("error", msg);
}
};
websocket.start(addr, port, enable_ssl, key);
//關閉行情連線,連線不再使用之後,要關閉,否則佔用不必要資源
//同時OpenD也限制了最多128條連線
//也可以一個頁面或者一個專案維護一條連線,這裡範例請求一次建立一條連線
setTimeout(()=>{
websocket.stop();
console.log("stop");
}, 5000); // 5秒後斷開
}
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
51
52
53
54
55
56
57
58
- Output
Warrant: errCode 0, retMsg , retType 0
{
"lastPage": false,
"allCount": 1401,
"warrantDataList": [{
"stock": {
"market": 1,
"code": "50710"
},
"owner": {
"market": 1,
"code": "00700"
},
"type": 3,
"issuer": 7,
"maturityTime": "2022-04-14",
"maturityTimestamp": 1649865600,
"listTime": "2021-09-10",
"listTimestamp": 1631203200,
"lastTradeTime": "2022-04-13",
"lastTradeTimestamp": 1649779200,
"recoveryPrice": 502.88,
"conversionRatio": 500,
"lotSize": 50000,
"strikePrice": 498.88,
"lastClosePrice": 0,
"name": "騰訊滙豐二四牛C.C",
"curPrice": 0,
"priceChangeVal": 0,
"changeRate": 0,
"status": 3,
"bidPrice": 0,
"askPrice": 0,
"bidVol": "0",
"askVol": "0",
"volume": "0",
"turnover": 0,
"score": 0.199,
"premium": 2.819,
"breakEvenPoint": 498.88,
"leverage": 0,
"ipop": -2.742,
"priceRecoveryRatio": -3.5157492841234506,
"conversionPrice": 0,
"streetRate": 0,
"streetVol": "0",
"amplitude": 0,
"issueSize": "100000000",
"highPrice": 0,
"lowPrice": 0,
"effectiveLeverage": 0
}, {
"stock": {
"market": 1,
"code": "50833"
},
"owner": {
"market": 1,
"code": "00700"
},
"type": 3,
"issuer": 11,
"maturityTime": "2022-01-28",
"maturityTimestamp": 1643299200,
"listTime": "2021-09-10",
"listTimestamp": 1631203200,
"lastTradeTime": "2022-01-27",
"lastTradeTimestamp": 1643212800,
"recoveryPrice": 518,
"conversionRatio": 100,
"lotSize": 10000,
"strikePrice": 515,
"lastClosePrice": 0,
"name": "騰訊瑞銀二一牛C.C",
"curPrice": 0,
"priceChangeVal": 0,
"changeRate": 0,
"status": 3,
"bidPrice": 0,
"askPrice": 0,
"bidVol": "0",
"askVol": "0",
"volume": "0",
"turnover": 0,
"score": 0.196,
"premium": 6.141,
"breakEvenPoint": 515,
"leverage": 0,
"ipop": -5.786,
"priceRecoveryRatio": -6.3320463320463345,
"conversionPrice": 0,
"streetRate": 0,
"streetVol": "0",
"amplitude": 0,
"issueSize": "40000000",
"highPrice": 0,
"lowPrice": 0,
"effectiveLeverage": 0
}]
}
stop
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
介面限制
- 港股 BMP 權限不支援呼叫此介面
- 每 30 秒內最多請求 60 次篩選窩輪介面
- 每次請求的數據個數上限為 200 個
- Python
- Proto
- C#
- Java
- C++
- JavaScript
get_warrant(stock_owner='', req=None)
介紹
篩選窩輪(僅用於篩選香港市場的窩輪、牛熊證、界內證)
參數
參數 類型 説明 stock_owner str 所屬正股的股票代碼 req WarrantRequest 篩選參數組合 - WarrantRequest 類型欄位説明如下:
欄位 類型 説明 begin int 數據起始點 num int 請求數據個數 最大 200sort_field SortField 根據哪個欄位排序 ascend bool 排序方向 True:升序
False:降序type_list list 窩輪類型過濾列表 list 中元素類型是 WrtTypeissuer_list list 發行人過濾列表 list 中元素類型是 Issuermaturity_time_min str 到期日過濾範圍的開始時間 maturity_time_max str 到期日過濾範圍的結束時間 ipo_period IpoPeriod 上市時段 price_type PriceType 價內/價外 暫不支援界內證的界內外篩選status WarrantStatus 窩輪狀態 cur_price_min float 最新價的過濾下限 閉區間
不傳代表下限為 -∞
精確到小數點後 3 位,超出部分會被捨棄cur_price_max float 最新價的過濾上限 閉區間
不傳代表上限為 +∞
精確到小數點後 3 位,超出部分會被捨棄strike_price_min float 行使價的過濾下限 閉區間
不傳代表下限為 -∞
精確到小數點後 3 位,超出部分會被捨棄strike_price_max float 行使價的過濾上限 閉區間
不傳代表上限為 +∞
精確到小數點後 3 位,超出部分會被捨棄street_min float 街貨佔比的過濾下限 閉區間
不傳代表下限為 -∞
該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。
精確到小數點後 3 位,超出部分會被捨棄street_max float 街貨佔比的過濾上限 閉區間
不傳代表上限為 +∞
該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。
精確到小數點後 3 位,超出部分會被捨棄conversion_min float 換股比率的過濾下限 閉區間
不傳代表下限為 -∞
精確到小數點後 3 位,超出部分會被捨棄conversion_max float 換股比率的過濾上限 閉區間
不傳代表上限為 +∞
精確到小數點後 3 位,超出部分會被捨棄vol_min int 成交量的過濾下限 閉區間
不傳代表下限為 -∞vol_max int 成交量的過濾上限 閉區間
不傳代表上限為 +∞premium_min float 溢價的過濾下限 閉區間
不傳代表下限為 -∞
該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。
精確到小數點後 3 位,超出部分會被捨棄premium_max float 溢價的過濾上限 閉區間
不傳代表上限為 +∞
該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。
精確到小數點後 3 位,超出部分會被捨棄leverage_ratio_min float 槓桿比率的過濾下限 閉區間
不傳代表下限為 -∞
精確到小數點後 3 位,超出部分會被捨棄leverage_ratio_max float 槓桿比率的過濾上限 閉區間
不傳代表上限為 +∞delta_min float 對沖值的過濾下限 閉區間
僅認購認沽支援此欄位過濾
不傳代表下限為 -∞
精確到小數點後 3 位,超出部分會被捨棄delta_max float 對沖值的過濾上限 閉區間
僅認購認沽支援此欄位過濾
不傳代表上限為 +∞
精確到小數點後 3 位,超出部分會被捨棄implied_min float 引伸波幅的過濾下限 閉區間
僅認購認沽支援此欄位過濾
不傳代表下限為 -∞
精確到小數點後 3 位,超出部分會被捨棄implied_max float 引伸波幅的過濾上限 閉區間
僅認購認沽支援此欄位過濾
不傳代表上限為 +∞
精確到小數點後 3 位,超出部分會被捨棄recovery_price_min float 收回價的過濾下限 閉區間
僅牛熊證支援此欄位過濾
不傳代表下限為 -∞
精確到小數點後 3 位,超出部分會被捨棄recovery_price_max float 收回價的過濾上限 閉區間
僅牛熊證支援此欄位過濾
不傳代表上限為 +∞
精確到小數點後 3 位,超出部分會被捨棄price_recovery_ratio_min float 正股距收回價的過濾下限 閉區間
僅牛熊證支援此欄位過濾
該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%
不傳代表下限為 -∞
精確到小數點後 3 位,超出部分會被捨棄price_recovery_ratio_max float 正股距收回價的過濾上限 閉區間
僅牛熊證支援此欄位過濾
該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%
不傳代表上限為 +∞
精確到小數點後 3 位,超出部分會被捨棄
- WarrantRequest 類型欄位説明如下:
返回
參數 類型 説明 ret RET_CODE 介面呼叫結果 data tuple 當 ret == RET_OK,返回窩輪數據 str 當 ret != RET_OK,返回錯誤描述 窩輪數據組成如下:
欄位 類型 説明 warrant_data_list pd.DataFrame 篩選後的窩輪數據 last_page bool 是否是最後一頁 True:是最後一頁
False:不是最後一頁all_count int 篩選結果中的窩輪總數量 - warrant_data_list 返回的 pd dataframe 數據格式:
欄位 類型 説明 stock str 窩輪代碼 stock_owner str 所屬正股 type WrtType 窩輪類型 issuer Issuer 發行人 maturity_time str 到期日 格式:yyyy-MM-ddlist_time str 上市時間 格式:yyyy-MM-ddlast_trade_time str 最後交易日 格式:yyyy-MM-ddrecovery_price float 收回價 僅牛熊證支援此欄位conversion_ratio float 換股比率 lot_size int 每手數量 strike_price float 行使價 last_close_price float 昨收價 name str 名稱 cur_price float 當前價 price_change_val float 漲跌額 status WarrantStatus 窩輪狀態 bid_price float 買入價 ask_price float 賣出價 bid_vol int 買量 ask_vol int 賣量 volume int 成交量 turnover float 成交額 score float 綜合評分 premium float 溢價 該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%break_even_point float 打和點 leverage float 槓桿比率 單位:倍ipop float 價內/價外 該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%price_recovery_ratio float 正股距收回價 僅牛熊證支援此欄位
該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%conversion_price float 換股價 street_rate float 街貨佔比 該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%street_vol int 街貨量 amplitude float 振幅 該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%issue_size int 發行量 high_price float 最高價 low_price float 最低價 implied_volatility float 引伸波幅 僅認購認沽支援此欄位delta float 對沖值 僅認購認沽支援此欄位effective_leverage float 有效槓桿 upper_strike_price float 上限價 僅界內證支援此欄位lower_strike_price float 下限價 僅界內證支援此欄位inline_price_status PriceType 界內界外 僅界內證支援此欄位
- warrant_data_list 返回的 pd dataframe 數據格式:
Example
from moomoo import *
quote_ctx = OpenQuoteContext(host='127.0.0.1', port=11111)
req = WarrantRequest()
req.sort_field = SortField.TURNOVER
req.type_list = WrtType.CALL
req.cur_price_min = 0.1
req.cur_price_max = 0.2
ret, ls = quote_ctx.get_warrant("HK.00700", req)
if ret == RET_OK: # 先判斷介面返回是否正常,再取數據
warrant_data_list, last_page, all_count = ls
print(len(warrant_data_list), all_count, warrant_data_list)
print(warrant_data_list['stock'][0]) # 取第一條的窩輪代碼
print(warrant_data_list['stock'].values.tolist()) # 轉為 list
else:
print('error: ', ls)
req = WarrantRequest()
req.sort_field = SortField.TURNOVER
req.issuer_list = ['UB','CS','BI']
ret, ls = quote_ctx.get_warrant(Market.HK, req)
if ret == RET_OK:
warrant_data_list, last_page, all_count = ls
print(len(warrant_data_list), all_count, warrant_data_list)
else:
print('error: ', ls)
quote_ctx.close() # 所有介面結尾加上這條 close,防止連線條數用盡
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
- Output
2 2
stock name stock_owner type issuer maturity_time list_time last_trade_time recovery_price conversion_ratio lot_size strike_price last_close_price cur_price price_change_val change_rate status bid_price ask_price bid_vol ask_vol volume turnover score premium break_even_point leverage ipop price_recovery_ratio conversion_price street_rate street_vol amplitude issue_size high_price low_price implied_volatility delta effective_leverage list_timestamp last_trade_timestamp maturity_timestamp upper_strike_price lower_strike_price inline_price_status
0 HK.20306 騰訊麥銀零乙購A.C HK.00700 CALL MB 2020-12-01 2019-06-27 2020-11-25 NaN 50.0 5000 588.88 0.188 0.188 0.000 0.000000 NORMAL 0.000 0.188 0 10000 0 0.0 0.198 2.008 598.28 62.393 -0.404 NaN 9.40 4.400 1584000 0.000 36000000 0.000 0.000 31.751 0.479 29.886 1.561565e+09 1.606234e+09 1.606752e+09 NaN NaN NaN
1 HK.16545 騰訊法興一二購B.C HK.00700 CALL SG 2021-02-26 2020-07-14 2021-02-22 NaN 100.0 10000 700.00 0.147 0.144 -0.003 -2.040816 NORMAL 0.141 0.144 28000000 28000000 0 0.0 81.506 21.807 714.40 40.729 -16.214 NaN 14.40 1.420 2130000 0.000 150000000 0.000 0.000 40.643 0.226 9.204 1.594656e+09 1.613923e+09 1.614269e+09 NaN NaN NaN
HK.20306
['HK.20306', 'HK.16545']
200 358
stock name stock_owner type issuer maturity_time list_time last_trade_time recovery_price conversion_ratio lot_size strike_price last_close_price cur_price price_change_val change_rate status bid_price ask_price bid_vol ask_vol volume turnover score premium break_even_point leverage ipop price_recovery_ratio conversion_price street_rate street_vol amplitude issue_size high_price low_price implied_volatility delta effective_leverage list_timestamp last_trade_timestamp maturity_timestamp upper_strike_price lower_strike_price inline_price_status
0 HK.19839 平安瑞銀零乙購A.C HK.02318 CALL UB 2020-12-31 2017-12-11 2020-12-24 NaN 100.0 50000 83.88 0.057 0.046 -0.011 -19.298246 NORMAL 0.043 0.046 30000000 30000000 0 0.0 39.641 1.642 88.480 18.923 3.779 NaN 4.600 1.25 6250000 0.0 500000000 0.0 0.0 25.129 0.692 13.094 1.512922e+09 1.608739e+09 1.609344e+09 NaN NaN NaN
1 HK.20084 平安中銀零乙購A.C HK.02318 CALL BI 2020-12-31 2017-12-19 2020-12-24 NaN 100.0 50000 83.88 0.059 0.050 -0.009 -15.254237 NORMAL 0.044 0.050 10000000 10000000 0 0.0 0.064 2.102 88.880 17.410 3.779 NaN 5.000 0.07 350000 0.0 500000000 0.0 0.0 29.174 0.672 11.699 1.513613e+09 1.608739e+09 1.609344e+09 NaN NaN NaN
......
198 HK.56886 恒指瑞銀三一牛F.C HK.800000 BULL UB 2023-01-30 2020-03-24 2023-01-27 21200.0 20000.0 10000 21100.00 0.230 0.232 0.002 0.869565 NORMAL 0.232 0.233 30000000 30000000 0 0.0 46.627 -2.884 25740.000 5.712 25.613 25.021179 4640.000 0.01 40000 0.0 400000000 0.0 0.0 NaN NaN 5.712 1.584979e+09 1.674749e+09 1.675008e+09 NaN NaN NaN
199 HK.56895 小米瑞銀零乙牛D.C HK.01810 BULL UB 2020-12-30 2020-03-24 2020-12-29 8.0 10.0 2000 7.60 2.010 1.930 -0.080 -3.980100 NORMAL 1.910 1.930 6000000 6000000 0 0.0 0.040 0.938 26.900 1.380 250.657 233.125000 19.300 0.10 60000 0.0 60000000 0.0 0.0 NaN NaN 1.380 1.584979e+09 1.609171e+09 1.609258e+09 NaN NaN NaN
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Qot_GetWarrant.proto
介紹
篩選窩輪(僅用於香港市場)
參數
message C2S
{
required int32 begin = 1; //數據起始點
required int32 num = 2; //請求數據個數,最大200
required int32 sortField = 3;//Qot_Common.SortField,根據哪個欄位排序
required bool ascend = 4;//升序 ture,降序 false
//以下為篩選條件,可選欄位,不填表示不過濾
optional Qot_Common.Security owner = 5; //所屬正股
repeated int32 typeList = 6; //Qot_Common.WarrantType,窩輪類型過濾列表
repeated int32 issuerList = 7; //Qot_Common.Issuer,發行人過濾列表
optional string maturityTimeMin = 8; //到期日,到期日範圍的開始時間戳
optional string maturityTimeMax = 9; //到期日範圍的結束時間戳
optional int32 ipoPeriod = 10; //Qot_Common.IpoPeriod,上市日
optional int32 priceType = 11; //Qot_Common.PriceType,價內/價外(暫不支援界內證的界內外篩選)
optional int32 status = 12; //Qot_Common.WarrantStatus,窩輪狀態
optional double curPriceMin = 13; //最新價的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double curPriceMax = 14; //最新價的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double strikePriceMin = 15; //行使價的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double strikePriceMax = 16; //行使價的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double streetMin = 17; //街貨佔比的過濾下限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double streetMax = 18; //街貨佔比的過濾上限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double conversionMin = 19; //換股比率的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double conversionMax = 20; //換股比率的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional uint64 volMin = 21; //成交量的過濾下限(閉區間),不傳代表下限為 -∞
optional uint64 volMax = 22; //成交量的過濾上限(閉區間),不傳代表上限為 +∞
optional double premiumMin = 23; //溢價的過濾下限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double premiumMax = 24; //溢價的過濾上限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double leverageRatioMin = 25; //槓桿比率的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double leverageRatioMax = 26; //槓桿比率的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double deltaMin = 27;//對沖值的過濾下限(閉區間),僅認購認沽支援此欄位過濾,不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double deltaMax = 28;//對沖值的過濾上限(閉區間),僅認購認沽支援此欄位過濾,不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double impliedMin = 29; //引伸波幅的過濾下限(閉區間),僅認購認沽支援此欄位過濾,不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double impliedMax = 30; //引伸波幅的過濾上限(閉區間),僅認購認沽支援此欄位過濾,不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double recoveryPriceMin = 31; //收回價的過濾下限(閉區間),僅牛熊證支援此欄位過濾,不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double recoveryPriceMax = 32; //收回價的過濾上限(閉區間),僅牛熊證支援此欄位過濾,不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double priceRecoveryRatioMin = 33;//正股距收回價,的過濾下限(閉區間),僅牛熊證支援此欄位過濾。該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double priceRecoveryRatioMax = 34;//正股距收回價,的過濾上限(閉區間),僅牛熊證支援此欄位過濾。該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
}
message Request
{
required C2S c2s = 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
- 股票結構參見 Security
- 排序類型參見 SortField
- 窩輪類型過濾列表參見 WarrantType
- 發行人過濾列表參見 Issuer
- 上市日類型參見 IpoPeriod
- 價內價外類型參見 PriceType
- 窩輪狀態類型參見 WarrantStatus
- 返回
message WarrantData
{
//靜態數據項
required Qot_Common.Security stock = 1; //股票
required Qot_Common.Security owner = 2; //所屬正股
required int32 type = 3; //Qot_Common.WarrantType,窩輪類型
required int32 issuer = 4; //Qot_Common.Issuer,發行人
required string maturityTime = 5; //到期日
optional double maturityTimestamp = 6; //到期日時間戳
required string listTime = 7; //上市時間(格式:yyyy-MM-dd)
optional double listTimestamp = 8; //上市時間戳
required string lastTradeTime = 9; //最後交易日
optional double lastTradeTimestamp = 10; //最後交易日時間戳
optional double recoveryPrice = 11; //收回價,僅牛熊證支援此欄位
required double conversionRatio = 12; //換股比率
required int32 lotSize = 13; //每手數量
required double strikePrice = 14; //行使價
required double lastClosePrice = 15; //昨收價
required string name = 16; //名稱
//動態數據項
required double curPrice = 17; //當前價
required double priceChangeVal = 18; //漲跌額
required double changeRate = 19; //漲跌幅(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required int32 status = 20; //Qot_Common.WarrantStatus,窩輪狀態
required double bidPrice = 21; //買入價
required double askPrice = 22; //賣出價
required int64 bidVol = 23; //買量
required int64 askVol = 24; //賣量
required int64 volume = 25; //成交量
required double turnover = 26; //成交額
required double score = 27; //綜合評分
required double premium = 28; //溢價(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required double breakEvenPoint = 29; //打和點
required double leverage = 30; //槓桿比率(倍)
required double ipop = 31; //價內/價外,正數表示價內,負數表示價外(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
optional double priceRecoveryRatio = 32; //正股距收回價,僅牛熊證支援此欄位(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required double conversionPrice = 33; //換股價
required double streetRate = 34; //街貨佔比(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required int64 streetVol = 35; //街貨量
required double amplitude = 36; //振幅(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required int64 issueSize = 37; //發行量
required double highPrice = 39; //最高價
required double lowPrice = 40; //最低價
optional double impliedVolatility = 41; //引申波幅,僅認購認沽支援此欄位
optional double delta = 42; //對沖值,僅認購認沽支援此欄位
required double effectiveLeverage = 43; //有效槓桿
optional double upperStrikePrice = 44; //上限價,僅界內證支援此欄位
optional double lowerStrikePrice = 45; //下限價,僅界內證支援此欄位
optional int32 inLinePriceStatus = 46; //Qot_Common.PriceType,界內界外,僅界內證支援此欄位
}
message S2C
{
required bool lastPage = 1; //是否最後一頁了,false:非最後一頁,還有窩輪記錄未返回; true:已是最後一頁
required int32 allCount = 2; //該條件請求所有數據的個數
repeated WarrantData warrantDataList = 3; //窩輪數據
}
message Response
{
required int32 retType = 1 [default = -400]; //RetType,返回結果
optional string retMsg = 2;
optional int32 errCode = 3;
optional S2C s2c = 4;
}
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
- 股票結構參見 Security
- 窩輪類型過濾列表參見 WarrantType
- 發行人過濾列表參見 Issuer
- 價內價外類型參見 PriceType
- 窩輪狀態類型參見 WarrantStatus
- 介面呼叫結果,結構參見 RetType
協議 ID
3210
uint GetWarrant(QotGetWarrant.Request req);
virtual void OnReply_GetWarrant(MMAPI_Conn client, uint nSerialNo, QotGetWarrant.Response rsp);
介紹
篩選窩輪(僅用於香港市場)
參數
message C2S
{
required int32 begin = 1; //數據起始點
required int32 num = 2; //請求數據個數,最大200
required int32 sortField = 3;//Qot_Common.SortField,根據哪個欄位排序
required bool ascend = 4;//升序 ture,降序 false
//以下為篩選條件,可選欄位,不填表示不過濾
optional Qot_Common.Security owner = 5; //所屬正股
repeated int32 typeList = 6; //Qot_Common.WarrantType,窩輪類型過濾列表
repeated int32 issuerList = 7; //Qot_Common.Issuer,發行人過濾列表
optional string maturityTimeMin = 8; //到期日,到期日範圍的開始時間戳
optional string maturityTimeMax = 9; //到期日範圍的結束時間戳
optional int32 ipoPeriod = 10; //Qot_Common.IpoPeriod,上市日
optional int32 priceType = 11; //Qot_Common.PriceType,價內/價外(暫不支援界內證的界內外篩選)
optional int32 status = 12; //Qot_Common.WarrantStatus,窩輪狀態
optional double curPriceMin = 13; //最新價的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double curPriceMax = 14; //最新價的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double strikePriceMin = 15; //行使價的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double strikePriceMax = 16; //行使價的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double streetMin = 17; //街貨佔比的過濾下限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double streetMax = 18; //街貨佔比的過濾上限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double conversionMin = 19; //換股比率的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double conversionMax = 20; //換股比率的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional uint64 volMin = 21; //成交量的過濾下限(閉區間),不傳代表下限為 -∞
optional uint64 volMax = 22; //成交量的過濾上限(閉區間),不傳代表上限為 +∞
optional double premiumMin = 23; //溢價的過濾下限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double premiumMax = 24; //溢價的過濾上限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double leverageRatioMin = 25; //槓桿比率的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double leverageRatioMax = 26; //槓桿比率的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double deltaMin = 27;//對沖值的過濾下限(閉區間),僅認購認沽支援此欄位過濾,不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double deltaMax = 28;//對沖值的過濾上限(閉區間),僅認購認沽支援此欄位過濾,不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double impliedMin = 29; //引伸波幅的過濾下限(閉區間),僅認購認沽支援此欄位過濾,不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double impliedMax = 30; //引伸波幅的過濾上限(閉區間),僅認購認沽支援此欄位過濾,不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double recoveryPriceMin = 31; //收回價的過濾下限(閉區間),僅牛熊證支援此欄位過濾,不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double recoveryPriceMax = 32; //收回價的過濾上限(閉區間),僅牛熊證支援此欄位過濾,不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double priceRecoveryRatioMin = 33;//正股距收回價,的過濾下限(閉區間),僅牛熊證支援此欄位過濾。該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double priceRecoveryRatioMax = 34;//正股距收回價,的過濾上限(閉區間),僅牛熊證支援此欄位過濾。該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
}
message Request
{
required C2S c2s = 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
- 股票結構參見 Security
- 排序類型參見 SortField
- 窩輪類型過濾列表參見 WarrantType
- 發行人過濾列表參見 Issuer
- 上市日類型參見 IpoPeriod
- 價內價外類型參見 PriceType
- 窩輪狀態類型參見 WarrantStatus
- 返回
message WarrantData
{
//靜態數據項
required Qot_Common.Security stock = 1; //股票
required Qot_Common.Security owner = 2; //所屬正股
required int32 type = 3; //Qot_Common.WarrantType,窩輪類型
required int32 issuer = 4; //Qot_Common.Issuer,發行人
required string maturityTime = 5; //到期日
optional double maturityTimestamp = 6; //到期日時間戳
required string listTime = 7; //上市時間(格式:yyyy-MM-dd)
optional double listTimestamp = 8; //上市時間戳
required string lastTradeTime = 9; //最後交易日
optional double lastTradeTimestamp = 10; //最後交易日時間戳
optional double recoveryPrice = 11; //收回價,僅牛熊證支援此欄位
required double conversionRatio = 12; //換股比率
required int32 lotSize = 13; //每手數量
required double strikePrice = 14; //行使價
required double lastClosePrice = 15; //昨收價
required string name = 16; //名稱
//動態數據項
required double curPrice = 17; //當前價
required double priceChangeVal = 18; //漲跌額
required double changeRate = 19; //漲跌幅(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required int32 status = 20; //Qot_Common.WarrantStatus,窩輪狀態
required double bidPrice = 21; //買入價
required double askPrice = 22; //賣出價
required int64 bidVol = 23; //買量
required int64 askVol = 24; //賣量
required int64 volume = 25; //成交量
required double turnover = 26; //成交額
required double score = 27; //綜合評分
required double premium = 28; //溢價(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required double breakEvenPoint = 29; //打和點
required double leverage = 30; //槓桿比率(倍)
required double ipop = 31; //價內/價外,正數表示價內,負數表示價外(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
optional double priceRecoveryRatio = 32; //正股距收回價,僅牛熊證支援此欄位(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required double conversionPrice = 33; //換股價
required double streetRate = 34; //街貨佔比(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required int64 streetVol = 35; //街貨量
required double amplitude = 36; //振幅(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required int64 issueSize = 37; //發行量
required double highPrice = 39; //最高價
required double lowPrice = 40; //最低價
optional double impliedVolatility = 41; //引申波幅,僅認購認沽支援此欄位
optional double delta = 42; //對沖值,僅認購認沽支援此欄位
required double effectiveLeverage = 43; //有效槓桿
optional double upperStrikePrice = 44; //上限價,僅界內證支援此欄位
optional double lowerStrikePrice = 45; //下限價,僅界內證支援此欄位
optional int32 inLinePriceStatus = 46; //Qot_Common.PriceType,界內界外,僅界內證支援此欄位
}
message S2C
{
required bool lastPage = 1; //是否最後一頁了,false:非最後一頁,還有窩輪記錄未返回; true:已是最後一頁
required int32 allCount = 2; //該條件請求所有數據的個數
repeated WarrantData warrantDataList = 3; //窩輪數據
}
message Response
{
required int32 retType = 1 [default = -400]; //RetType,返回結果
optional string retMsg = 2;
optional int32 errCode = 3;
optional S2C s2c = 4;
}
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
- 股票結構參見 Security
- 窩輪類型過濾列表參見 WarrantType
- 發行人過濾列表參見 Issuer
- 價內價外類型參見 PriceType
- 窩輪狀態類型參見 WarrantStatus
- 介面呼叫結果,結構參見 RetType
- Example
public class Program : MMSPI_Qot, MMSPI_Conn {
MMAPI_Qot qot = new MMAPI_Qot();
public Program() {
qot.SetClientInfo("csharp", 1); //設定用戶端資訊
qot.SetConnCallback(this); //設定連線回呼
qot.SetQotCallback(this); //設定交易回呼
}
public void Start() {
qot.InitConnect("127.0.0.1", (ushort)11111, false);
}
public void OnInitConnect(MMAPI_Conn client, long errCode, String desc)
{
Console.Write("Qot onInitConnect: ret={0} desc={1} connID={2}\n", errCode, desc, client.GetConnectID());
if (errCode != 0)
return;
QotGetWarrant.C2S c2s = QotGetWarrant.C2S.CreateBuilder()
.SetBegin(0)
.SetNum(50)
.SetSortField((int)QotCommon.SortField.SortField_Code)
.SetAscend(true)
.Build();
QotGetWarrant.Request req = QotGetWarrant.Request.CreateBuilder().SetC2S(c2s).Build();
uint seqNo = qot.GetWarrant(req);
Console.Write("Send QotGetWarrant: {0}\n", seqNo);
}
public void OnDisconnect(MMAPI_Conn client, long errCode) {
Console.Write("Qot onDisConnect: {0}\n", errCode);
}
public void OnReply_GetWarrant(MMAPI_Conn client, uint nSerialNo, QotGetWarrant.Response rsp)
{
Console.Write("Reply: QotGetWarrant: {0}\n", nSerialNo);
Console.Write("retMsg: {0}\n", rsp.RetMsg);
Console.Write("name: {0}, type: {1}\n", rsp.S2C.WarrantDataListList[0].Name,
rsp.S2C.WarrantDataListList[0].Type);
}
public static void Main(String[] args) {
MMAPI.Init();
Program qot = new Program();
qot.Start();
while (true)
Thread.Sleep(1000 * 600);
}
}
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
51
52
53
- Output
Qot onInitConnect: ret=0 desc= connID=6825714488755091916
Send QotGetWarrant: 3
Reply: QotGetWarrant: 3
retMsg:
name: 騰訊麥銀零乙購A.C, type: 1
2
3
4
5
int getWarrant(QotGetWarrant.Request req);
void onReply_GetWarrant(MMAPI_Conn client, int nSerialNo, QotGetWarrant.Response rsp);
介紹
篩選窩輪(僅用於香港市場)
參數
message C2S
{
required int32 begin = 1; //數據起始點
required int32 num = 2; //請求數據個數,最大200
required int32 sortField = 3;//Qot_Common.SortField,根據哪個欄位排序
required bool ascend = 4;//升序 ture,降序 false
//以下為篩選條件,可選欄位,不填表示不過濾
optional Qot_Common.Security owner = 5; //所屬正股
repeated int32 typeList = 6; //Qot_Common.WarrantType,窩輪類型過濾列表
repeated int32 issuerList = 7; //Qot_Common.Issuer,發行人過濾列表
optional string maturityTimeMin = 8; //到期日,到期日範圍的開始時間戳
optional string maturityTimeMax = 9; //到期日範圍的結束時間戳
optional int32 ipoPeriod = 10; //Qot_Common.IpoPeriod,上市日
optional int32 priceType = 11; //Qot_Common.PriceType,價內/價外(暫不支援界內證的界內外篩選)
optional int32 status = 12; //Qot_Common.WarrantStatus,窩輪狀態
optional double curPriceMin = 13; //最新價的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double curPriceMax = 14; //最新價的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double strikePriceMin = 15; //行使價的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double strikePriceMax = 16; //行使價的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double streetMin = 17; //街貨佔比的過濾下限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double streetMax = 18; //街貨佔比的過濾上限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double conversionMin = 19; //換股比率的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double conversionMax = 20; //換股比率的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional uint64 volMin = 21; //成交量的過濾下限(閉區間),不傳代表下限為 -∞
optional uint64 volMax = 22; //成交量的過濾上限(閉區間),不傳代表上限為 +∞
optional double premiumMin = 23; //溢價的過濾下限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double premiumMax = 24; //溢價的過濾上限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double leverageRatioMin = 25; //槓桿比率的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double leverageRatioMax = 26; //槓桿比率的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double deltaMin = 27;//對沖值的過濾下限(閉區間),僅認購認沽支援此欄位過濾,不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double deltaMax = 28;//對沖值的過濾上限(閉區間),僅認購認沽支援此欄位過濾,不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double impliedMin = 29; //引伸波幅的過濾下限(閉區間),僅認購認沽支援此欄位過濾,不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double impliedMax = 30; //引伸波幅的過濾上限(閉區間),僅認購認沽支援此欄位過濾,不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double recoveryPriceMin = 31; //收回價的過濾下限(閉區間),僅牛熊證支援此欄位過濾,不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double recoveryPriceMax = 32; //收回價的過濾上限(閉區間),僅牛熊證支援此欄位過濾,不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double priceRecoveryRatioMin = 33;//正股距收回價,的過濾下限(閉區間),僅牛熊證支援此欄位過濾。該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double priceRecoveryRatioMax = 34;//正股距收回價,的過濾上限(閉區間),僅牛熊證支援此欄位過濾。該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
}
message Request
{
required C2S c2s = 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
- 股票結構參見 Security
- 排序類型參見 SortField
- 窩輪類型過濾列表參見 WarrantType
- 發行人過濾列表參見 Issuer
- 上市日類型參見 IpoPeriod
- 價內價外類型參見 PriceType
- 窩輪狀態類型參見 WarrantStatus
- 返回
message WarrantData
{
//靜態數據項
required Qot_Common.Security stock = 1; //股票
required Qot_Common.Security owner = 2; //所屬正股
required int32 type = 3; //Qot_Common.WarrantType,窩輪類型
required int32 issuer = 4; //Qot_Common.Issuer,發行人
required string maturityTime = 5; //到期日
optional double maturityTimestamp = 6; //到期日時間戳
required string listTime = 7; //上市時間(格式:yyyy-MM-dd)
optional double listTimestamp = 8; //上市時間戳
required string lastTradeTime = 9; //最後交易日
optional double lastTradeTimestamp = 10; //最後交易日時間戳
optional double recoveryPrice = 11; //收回價,僅牛熊證支援此欄位
required double conversionRatio = 12; //換股比率
required int32 lotSize = 13; //每手數量
required double strikePrice = 14; //行使價
required double lastClosePrice = 15; //昨收價
required string name = 16; //名稱
//動態數據項
required double curPrice = 17; //當前價
required double priceChangeVal = 18; //漲跌額
required double changeRate = 19; //漲跌幅(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required int32 status = 20; //Qot_Common.WarrantStatus,窩輪狀態
required double bidPrice = 21; //買入價
required double askPrice = 22; //賣出價
required int64 bidVol = 23; //買量
required int64 askVol = 24; //賣量
required int64 volume = 25; //成交量
required double turnover = 26; //成交額
required double score = 27; //綜合評分
required double premium = 28; //溢價(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required double breakEvenPoint = 29; //打和點
required double leverage = 30; //槓桿比率(倍)
required double ipop = 31; //價內/價外,正數表示價內,負數表示價外(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
optional double priceRecoveryRatio = 32; //正股距收回價,僅牛熊證支援此欄位(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required double conversionPrice = 33; //換股價
required double streetRate = 34; //街貨佔比(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required int64 streetVol = 35; //街貨量
required double amplitude = 36; //振幅(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required int64 issueSize = 37; //發行量
required double highPrice = 39; //最高價
required double lowPrice = 40; //最低價
optional double impliedVolatility = 41; //引申波幅,僅認購認沽支援此欄位
optional double delta = 42; //對沖值,僅認購認沽支援此欄位
required double effectiveLeverage = 43; //有效槓桿
optional double upperStrikePrice = 44; //上限價,僅界內證支援此欄位
optional double lowerStrikePrice = 45; //下限價,僅界內證支援此欄位
optional int32 inLinePriceStatus = 46; //Qot_Common.PriceType,界內界外,僅界內證支援此欄位
}
message S2C
{
required bool lastPage = 1; //是否最後一頁了,false:非最後一頁,還有窩輪記錄未返回; true:已是最後一頁
required int32 allCount = 2; //該條件請求所有數據的個數
repeated WarrantData warrantDataList = 3; //窩輪數據
}
message Response
{
required int32 retType = 1 [default = -400]; //RetType,返回結果
optional string retMsg = 2;
optional int32 errCode = 3;
optional S2C s2c = 4;
}
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
- 股票結構參見 Security
- 窩輪類型過濾列表參見 WarrantType
- 發行人過濾列表參見 Issuer
- 價內價外類型參見 PriceType
- 窩輪狀態類型參見 WarrantStatus
- 介面呼叫結果,結構參見 RetType
- Example
public class QotDemo implements MMSPI_Qot, MMSPI_Conn {
MMAPI_Conn_Qot qot = new MMAPI_Conn_Qot();
public QotDemo() {
qot.setClientInfo("javaclient", 1); //設定用戶端資訊
qot.setConnSpi(this); //設定連線回呼
qot.setQotSpi(this); //設定交易回呼
}
public void start() {
qot.initConnect("127.0.0.1", (short)11111, false);
}
@Override
public void onInitConnect(MMAPI_Conn client, long errCode, String desc)
{
System.out.printf("Qot onInitConnect: ret=%b desc=%s connID=%d\n", errCode, desc, client.getConnectID());
if (errCode != 0)
return;
QotGetWarrant.C2S c2s = QotGetWarrant.C2S.newBuilder()
.setBegin(0)
.setNum(50)
.setSortField(QotCommon.SortField.SortField_Code_VALUE)
.setAscend(true)
.build();
QotGetWarrant.Request req = QotGetWarrant.Request.newBuilder().setC2S(c2s).build();
int seqNo = qot.getWarrant(req);
System.out.printf("Send QotGetWarrant: %d\n", seqNo);
}
@Override
public void onDisconnect(MMAPI_Conn client, long errCode) {
System.out.printf("Qot onDisConnect: %d\n", errCode);
}
@Override
public void onReply_GetWarrant(MMAPI_Conn client, int nSerialNo, QotGetWarrant.Response rsp) {
if (rsp.getRetType() != 0) {
System.out.printf("QotGetWarrant failed: %s\n", rsp.getRetMsg());
}
else {
try {
String json = JsonFormat.printer().print(rsp);
System.out.printf("Receive QotGetWarrant: %s\n", json);
} catch (InvalidProtocolBufferException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
MMAPI.init();
QotDemo qot = new QotDemo();
qot.start();
while (true) {
try {
Thread.sleep(1000 * 600);
} catch (InterruptedException exc) {
}
}
}
}
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
- Output
Send QotGetWarrant: 2
Receive QotGetWarrant: {
"retType": 0,
"retMsg": "",
"errCode": 0,
"s2c": {
"lastPage": false,
"allCount": 15552,
"warrantDataList": [{
"stock": {
"market": 1,
"code": "10071"
},
"owner": {
"market": 11,
"code": ".DJI"
},
"type": 2,
"issuer": 7,
"maturityTime": "2021-06-18",
"maturityTimestamp": 1.6239456E9,
"listTime": "2020-11-10",
"listTimestamp": 1.6049376E9,
"lastTradeTime": "2021-06-11",
"lastTradeTimestamp": 1.6233408E9,
"conversionRatio": 66000.0,
"lotSize": 10000,
"strikePrice": 25000.0,
"lastClosePrice": 0.01,
"name": "道指滙豐一六沽B.P",
"curPrice": 0.01,
"priceChangeVal": 0.0,
"changeRate": 0.0,
"status": 3,
"bidPrice": 0.0,
"askPrice": 0.0,
"bidVol": "0",
"askVol": "0",
"volume": "0",
"turnover": 0.0,
"score": 0.02,
"premium": 0.0,
"breakEvenPoint": 24340.0,
"leverage": 0.0,
"ipop": 100.0,
"conversionPrice": 660.0,
"streetRate": 6.54,
"streetVol": "13080000",
"amplitude": 0.0,
"issueSize": "200000000",
"highPrice": 0.0,
"lowPrice": 0.0,
"impliedVolatility": 0.0,
"delta": 0.0,
"effectiveLeverage": 0.0
}, ... {
"stock": {
"market": 1,
"code": "11047"
},
"owner": {
"market": 1,
"code": "01211"
},
"type": 2,
"issuer": 21,
"maturityTime": "2021-11-26",
"maturityTimestamp": 1.637856E9,
"listTime": "2021-05-17",
"listTimestamp": 1.6211808E9,
"lastTradeTime": "2021-11-22",
"lastTradeTimestamp": 1.6375104E9,
"conversionRatio": 50.0,
"lotSize": 25000,
"strikePrice": 121.0,
"lastClosePrice": 0.026,
"name": "比迪瑞通一甲沽A.P",
"curPrice": 0.026,
"priceChangeVal": 0.0,
"changeRate": 0.0,
"status": 1,
"bidPrice": 0.026,
"askPrice": 0.029,
"bidVol": "125000",
"askVol": "600000",
"volume": "0",
"turnover": 0.0,
"score": 0.008,
"premium": 47.407,
"breakEvenPoint": 119.7,
"leverage": 175.076,
"ipop": -88.099,
"conversionPrice": 1.3,
"streetRate": 2.25,
"streetVol": "900000",
"amplitude": 0.0,
"issueSize": "40000000",
"highPrice": 0.0,
"lowPrice": 0.0,
"impliedVolatility": 58.629,
"delta": -0.032,
"effectiveLeverage": -5.602
}]
}
}
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
moomoo::u32_t GetWarrant(const Qot_GetWarrant::Request &stReq);
virtual void OnReply_GetWarrant(moomoo::u32_t nSerialNo, const Qot_GetWarrant::Response &stRsp) = 0;
介紹
篩選窩輪(僅用於香港市場)
參數
message C2S
{
required int32 begin = 1; //數據起始點
required int32 num = 2; //請求數據個數,最大200
required int32 sortField = 3;//Qot_Common.SortField,根據哪個欄位排序
required bool ascend = 4;//升序 ture,降序 false
//以下為篩選條件,可選欄位,不填表示不過濾
optional Qot_Common.Security owner = 5; //所屬正股
repeated int32 typeList = 6; //Qot_Common.WarrantType,窩輪類型過濾列表
repeated int32 issuerList = 7; //Qot_Common.Issuer,發行人過濾列表
optional string maturityTimeMin = 8; //到期日,到期日範圍的開始時間戳
optional string maturityTimeMax = 9; //到期日範圍的結束時間戳
optional int32 ipoPeriod = 10; //Qot_Common.IpoPeriod,上市日
optional int32 priceType = 11; //Qot_Common.PriceType,價內/價外(暫不支援界內證的界內外篩選)
optional int32 status = 12; //Qot_Common.WarrantStatus,窩輪狀態
optional double curPriceMin = 13; //最新價的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double curPriceMax = 14; //最新價的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double strikePriceMin = 15; //行使價的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double strikePriceMax = 16; //行使價的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double streetMin = 17; //街貨佔比的過濾下限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double streetMax = 18; //街貨佔比的過濾上限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double conversionMin = 19; //換股比率的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double conversionMax = 20; //換股比率的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional uint64 volMin = 21; //成交量的過濾下限(閉區間),不傳代表下限為 -∞
optional uint64 volMax = 22; //成交量的過濾上限(閉區間),不傳代表上限為 +∞
optional double premiumMin = 23; //溢價的過濾下限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double premiumMax = 24; //溢價的過濾上限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double leverageRatioMin = 25; //槓桿比率的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double leverageRatioMax = 26; //槓桿比率的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double deltaMin = 27;//對沖值的過濾下限(閉區間),僅認購認沽支援此欄位過濾,不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double deltaMax = 28;//對沖值的過濾上限(閉區間),僅認購認沽支援此欄位過濾,不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double impliedMin = 29; //引伸波幅的過濾下限(閉區間),僅認購認沽支援此欄位過濾,不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double impliedMax = 30; //引伸波幅的過濾上限(閉區間),僅認購認沽支援此欄位過濾,不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double recoveryPriceMin = 31; //收回價的過濾下限(閉區間),僅牛熊證支援此欄位過濾,不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double recoveryPriceMax = 32; //收回價的過濾上限(閉區間),僅牛熊證支援此欄位過濾,不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double priceRecoveryRatioMin = 33;//正股距收回價,的過濾下限(閉區間),僅牛熊證支援此欄位過濾。該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double priceRecoveryRatioMax = 34;//正股距收回價,的過濾上限(閉區間),僅牛熊證支援此欄位過濾。該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
}
message Request
{
required C2S c2s = 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
- 股票結構參見 Security
- 排序類型參見 SortField
- 窩輪類型過濾列表參見 WarrantType
- 發行人過濾列表參見 Issuer
- 上市日類型參見 IpoPeriod
- 價內價外類型參見 PriceType
- 窩輪狀態類型參見 WarrantStatus
- 返回
message WarrantData
{
//靜態數據項
required Qot_Common.Security stock = 1; //股票
required Qot_Common.Security owner = 2; //所屬正股
required int32 type = 3; //Qot_Common.WarrantType,窩輪類型
required int32 issuer = 4; //Qot_Common.Issuer,發行人
required string maturityTime = 5; //到期日
optional double maturityTimestamp = 6; //到期日時間戳
required string listTime = 7; //上市時間(格式:yyyy-MM-dd)
optional double listTimestamp = 8; //上市時間戳
required string lastTradeTime = 9; //最後交易日
optional double lastTradeTimestamp = 10; //最後交易日時間戳
optional double recoveryPrice = 11; //收回價,僅牛熊證支援此欄位
required double conversionRatio = 12; //換股比率
required int32 lotSize = 13; //每手數量
required double strikePrice = 14; //行使價
required double lastClosePrice = 15; //昨收價
required string name = 16; //名稱
//動態數據項
required double curPrice = 17; //當前價
required double priceChangeVal = 18; //漲跌額
required double changeRate = 19; //漲跌幅(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required int32 status = 20; //Qot_Common.WarrantStatus,窩輪狀態
required double bidPrice = 21; //買入價
required double askPrice = 22; //賣出價
required int64 bidVol = 23; //買量
required int64 askVol = 24; //賣量
required int64 volume = 25; //成交量
required double turnover = 26; //成交額
required double score = 27; //綜合評分
required double premium = 28; //溢價(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required double breakEvenPoint = 29; //打和點
required double leverage = 30; //槓桿比率(倍)
required double ipop = 31; //價內/價外,正數表示價內,負數表示價外(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
optional double priceRecoveryRatio = 32; //正股距收回價,僅牛熊證支援此欄位(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required double conversionPrice = 33; //換股價
required double streetRate = 34; //街貨佔比(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required int64 streetVol = 35; //街貨量
required double amplitude = 36; //振幅(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required int64 issueSize = 37; //發行量
required double highPrice = 39; //最高價
required double lowPrice = 40; //最低價
optional double impliedVolatility = 41; //引申波幅,僅認購認沽支援此欄位
optional double delta = 42; //對沖值,僅認購認沽支援此欄位
required double effectiveLeverage = 43; //有效槓桿
optional double upperStrikePrice = 44; //上限價,僅界內證支援此欄位
optional double lowerStrikePrice = 45; //下限價,僅界內證支援此欄位
optional int32 inLinePriceStatus = 46; //Qot_Common.PriceType,界內界外,僅界內證支援此欄位
}
message S2C
{
required bool lastPage = 1; //是否最後一頁了,false:非最後一頁,還有窩輪記錄未返回; true:已是最後一頁
required int32 allCount = 2; //該條件請求所有數據的個數
repeated WarrantData warrantDataList = 3; //窩輪數據
}
message Response
{
required int32 retType = 1 [default = -400]; //RetType,返回結果
optional string retMsg = 2;
optional int32 errCode = 3;
optional S2C s2c = 4;
}
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
- 股票結構參見 Security
- 窩輪類型過濾列表參見 WarrantType
- 發行人過濾列表參見 Issuer
- 價內價外類型參見 PriceType
- 窩輪狀態類型參見 WarrantStatus
- 介面呼叫結果,結構參見 RetType
- Example
class Program : public MMSPI_Qot, public MMSPI_Trd, public MMSPI_Conn
{
public:
Program() {
m_pQotApi = MMAPI::CreateQotApi();
m_pQotApi->RegisterQotSpi(this);
m_pQotApi->RegisterConnSpi(this);
}
~Program() {
if (m_pQotApi != nullptr)
{
m_pQotApi->UnregisterQotSpi();
m_pQotApi->UnregisterConnSpi();
MMAPI::ReleaseQotApi(m_pQotApi);
m_pQotApi = nullptr;
}
}
void Start() {
m_pQotApi->InitConnect("127.0.0.1", 11111, false);
}
virtual void OnInitConnect(MMAPI_Conn* pConn, moomoo::i64_t nErrCode, const char* strDesc) {
cout << "connect" << endl;
// 組包
Qot_GetWarrant::Request req;
Qot_GetWarrant::C2S *c2s = req.mutable_c2s();
c2s->set_begin(0);
c2s->set_num(50);
c2s->set_sortfield(1);
c2s->set_ascend(false);
m_GetWarrantSerialNo = m_pQotApi->GetWarrant(req);
cout << "Request GetWarrant SerialNo: " << m_GetWarrantSerialNo << endl;
}
virtual void OnReply_GetWarrant(moomoo::u32_t nSerialNo, const Qot_GetWarrant::Response &stRsp){
if(nSerialNo == m_GetWarrantSerialNo)
{
cout << "OnReply_GetWarrant SerialNo:" << nSerialNo << endl;
// 解析內部結構列印出來
// ProtoBufToBodyData和UTF8ToLocal函數的定義參見Sample中的tool.h檔案
string resp_str;
ProtoBufToBodyData(stRsp, resp_str);
cout << UTF8ToLocal(resp_str) << endl;
}
}
protected:
MMAPI_Qot *m_pQotApi;
moomoo::u32_t m_GetWarrantSerialNo;
};
int32_t main(int32_t argc, char** argv)
{
MMAPI::Init();
{
Program program;
program.Start();
getchar();
}
protobuf::ShutdownProtobufLibrary();
MMAPI::UnInit();
return 0;
}
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
- Output
connect
Request GetWarrant SerialNo: 4
OnReply_GetWarrant SerialNo: 4
{
"retType": 0,
"retMsg": "",
"errCode": 0,
"s2c": {
"lastPage": false,
"allCount": 15684,
"warrantDataList": [
{
"stock": {
"market": 1,
"code": "69999"
},
"owner": {
"market": 1,
"code": "01211"
},
"type": 3,
"issuer": 1,
"maturityTime": "2022-02-28",
"maturityTimestamp": 1645977600,
"listTime": "2021-06-11",
"listTimestamp": 1623340800,
"lastTradeTime": "2022-02-25",
"lastTradeTimestamp": 1645718400,
"recoveryPrice": 193,
"conversionRatio": 500,
"lotSize": 25000,
"strikePrice": 189,
"lastClosePrice": 0,
"name": "比迪法興二二牛P",
"curPrice": 0,
"priceChangeVal": 0,
"changeRate": 0,
"status": 4,
"bidPrice": 0,
"askPrice": 0,
"bidVol": "0",
"askVol": "0",
"volume": "0",
"turnover": 0,
"score": 0,
"premium": -5.782,
"breakEvenPoint": 189,
"leverage": 0,
"ipop": 6.137,
"priceRecoveryRatio": 3.9378238341968879,
"conversionPrice": 0,
"streetRate": 0,
"streetVol": "0",
"amplitude": 0,
"issueSize": "150000000",
"highPrice": 0,
"lowPrice": 0,
"effectiveLeverage": 0
},
...
{
"stock": {
"market": 1,
"code": "69897"
},
"owner": {
"market": 1,
"code": "00700"
},
"type": 4,
"issuer": 3,
"maturityTime": "2021-12-30",
"maturityTimestamp": 1640793600,
"listTime": "2021-06-11",
"listTimestamp": 1623340800,
"lastTradeTime": "2021-12-29",
"lastTradeTimestamp": 1640707200,
"recoveryPrice": 608,
"conversionRatio": 500,
"lotSize": 5000,
"strikePrice": 610.8,
"lastClosePrice": 0,
"name": "騰訊瑞信一乙熊G",
"curPrice": 0,
"priceChangeVal": 0,
"changeRate": 0,
"status": 4,
"bidPrice": 0,
"askPrice": 0,
"bidVol": "0",
"askVol": "0",
"volume": "0",
"turnover": 0,
"score": 0,
"premium": -1.125,
"breakEvenPoint": 610.8,
"leverage": 0,
"ipop": 1.113,
"priceRecoveryRatio": -0.6578947368421052,
"conversionPrice": 0,
"streetRate": 0,
"streetVol": "0",
"amplitude": 0,
"issueSize": "100000000",
"highPrice": 0,
"lowPrice": 0,
"effectiveLeverage": 0
}
]
}
}
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
GetWarrant(req);
介紹
篩選窩輪(僅用於香港市場)
參數
message C2S
{
required int32 begin = 1; //數據起始點
required int32 num = 2; //請求數據個數,最大200
required int32 sortField = 3;//Qot_Common.SortField,根據哪個欄位排序
required bool ascend = 4;//升序 ture,降序 false
//以下為篩選條件,可選欄位,不填表示不過濾
optional Qot_Common.Security owner = 5; //所屬正股
repeated int32 typeList = 6; //Qot_Common.WarrantType,窩輪類型過濾列表
repeated int32 issuerList = 7; //Qot_Common.Issuer,發行人過濾列表
optional string maturityTimeMin = 8; //到期日,到期日範圍的開始時間戳
optional string maturityTimeMax = 9; //到期日範圍的結束時間戳
optional int32 ipoPeriod = 10; //Qot_Common.IpoPeriod,上市日
optional int32 priceType = 11; //Qot_Common.PriceType,價內/價外(暫不支援界內證的界內外篩選)
optional int32 status = 12; //Qot_Common.WarrantStatus,窩輪狀態
optional double curPriceMin = 13; //最新價的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double curPriceMax = 14; //最新價的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double strikePriceMin = 15; //行使價的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double strikePriceMax = 16; //行使價的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double streetMin = 17; //街貨佔比的過濾下限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double streetMax = 18; //街貨佔比的過濾上限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double conversionMin = 19; //換股比率的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double conversionMax = 20; //換股比率的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional uint64 volMin = 21; //成交量的過濾下限(閉區間),不傳代表下限為 -∞
optional uint64 volMax = 22; //成交量的過濾上限(閉區間),不傳代表上限為 +∞
optional double premiumMin = 23; //溢價的過濾下限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double premiumMax = 24; //溢價的過濾上限(閉區間),該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double leverageRatioMin = 25; //槓桿比率的過濾下限(閉區間),不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double leverageRatioMax = 26; //槓桿比率的過濾上限(閉區間),不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double deltaMin = 27;//對沖值的過濾下限(閉區間),僅認購認沽支援此欄位過濾,不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double deltaMax = 28;//對沖值的過濾上限(閉區間),僅認購認沽支援此欄位過濾,不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double impliedMin = 29; //引伸波幅的過濾下限(閉區間),僅認購認沽支援此欄位過濾,不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double impliedMax = 30; //引伸波幅的過濾上限(閉區間),僅認購認沽支援此欄位過濾,不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double recoveryPriceMin = 31; //收回價的過濾下限(閉區間),僅牛熊證支援此欄位過濾,不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double recoveryPriceMax = 32; //收回價的過濾上限(閉區間),僅牛熊證支援此欄位過濾,不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double priceRecoveryRatioMin = 33;//正股距收回價,的過濾下限(閉區間),僅牛熊證支援此欄位過濾。該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表下限為 -∞(精確到小數點後 3 位,超出部分會被捨棄)
optional double priceRecoveryRatioMax = 34;//正股距收回價,的過濾上限(閉區間),僅牛熊證支援此欄位過濾。該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%。不傳代表上限為 +∞(精確到小數點後 3 位,超出部分會被捨棄)
}
message Request
{
required C2S c2s = 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
- 股票結構參見 Security
- 排序類型參見 SortField
- 窩輪類型過濾列表參見 WarrantType
- 發行人過濾列表參見 Issuer
- 上市日類型參見 IpoPeriod
- 價內價外類型參見 PriceType
- 窩輪狀態類型參見 WarrantStatus
- 返回
message WarrantData
{
//靜態數據項
required Qot_Common.Security stock = 1; //股票
required Qot_Common.Security owner = 2; //所屬正股
required int32 type = 3; //Qot_Common.WarrantType,窩輪類型
required int32 issuer = 4; //Qot_Common.Issuer,發行人
required string maturityTime = 5; //到期日
optional double maturityTimestamp = 6; //到期日時間戳
required string listTime = 7; //上市時間(格式:yyyy-MM-dd)
optional double listTimestamp = 8; //上市時間戳
required string lastTradeTime = 9; //最後交易日
optional double lastTradeTimestamp = 10; //最後交易日時間戳
optional double recoveryPrice = 11; //收回價,僅牛熊證支援此欄位
required double conversionRatio = 12; //換股比率
required int32 lotSize = 13; //每手數量
required double strikePrice = 14; //行使價
required double lastClosePrice = 15; //昨收價
required string name = 16; //名稱
//動態數據項
required double curPrice = 17; //當前價
required double priceChangeVal = 18; //漲跌額
required double changeRate = 19; //漲跌幅(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required int32 status = 20; //Qot_Common.WarrantStatus,窩輪狀態
required double bidPrice = 21; //買入價
required double askPrice = 22; //賣出價
required int64 bidVol = 23; //買量
required int64 askVol = 24; //賣量
required int64 volume = 25; //成交量
required double turnover = 26; //成交額
required double score = 27; //綜合評分
required double premium = 28; //溢價(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required double breakEvenPoint = 29; //打和點
required double leverage = 30; //槓桿比率(倍)
required double ipop = 31; //價內/價外,正數表示價內,負數表示價外(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
optional double priceRecoveryRatio = 32; //正股距收回價,僅牛熊證支援此欄位(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required double conversionPrice = 33; //換股價
required double streetRate = 34; //街貨佔比(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required int64 streetVol = 35; //街貨量
required double amplitude = 36; //振幅(該欄位為百分比欄位,預設不展示 %,如 20 實際對應 20%)
required int64 issueSize = 37; //發行量
required double highPrice = 39; //最高價
required double lowPrice = 40; //最低價
optional double impliedVolatility = 41; //引申波幅,僅認購認沽支援此欄位
optional double delta = 42; //對沖值,僅認購認沽支援此欄位
required double effectiveLeverage = 43; //有效槓桿
optional double upperStrikePrice = 44; //上限價,僅界內證支援此欄位
optional double lowerStrikePrice = 45; //下限價,僅界內證支援此欄位
optional int32 inLinePriceStatus = 46; //Qot_Common.PriceType,界內界外,僅界內證支援此欄位
}
message S2C
{
required bool lastPage = 1; //是否最後一頁了,false:非最後一頁,還有窩輪記錄未返回; true:已是最後一頁
required int32 allCount = 2; //該條件請求所有數據的個數
repeated WarrantData warrantDataList = 3; //窩輪數據
}
message Response
{
required int32 retType = 1 [default = -400]; //RetType,返回結果
optional string retMsg = 2;
optional int32 errCode = 3;
optional S2C s2c = 4;
}
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
- 股票結構參見 Security
- 窩輪類型過濾列表參見 WarrantType
- 發行人過濾列表參見 Issuer
- 價內價外類型參見 PriceType
- 窩輪狀態類型參見 WarrantStatus
- 介面呼叫結果,結構參見 RetType
- Example
import mmWebsocket from "moomoo-api";
import { mmCmdID } from "moomoo-api";
import { Common, Qot_Common } from "moomoo-api/proto";
import beautify from "js-beautify";
function QotGetWarrant(){
const { RetType } = Common
const { SortField, QotMarket } = Qot_Common
let [addr, port, enable_ssl, key] = ["127.0.0.1", 33333, false, '7522027ccf5a06b1'];
let websocket = new mmWebsocket();
websocket.onlogin = (ret, msg)=>{
if (ret) { // 登入成功
const req = {
c2s: {
begin: 0,
num: 2,
sortField: SortField.SortField_CurPrice,
ascend: true,
owner:{
market: QotMarket.QotMarket_HK_Security,
code: "00700",
},
},
};
websocket.GetWarrant(req)
.then((res) => {
let { errCode, retMsg, retType,s2c } = res
console.log("Warrant: errCode %d, retMsg %s, retType %d", errCode, retMsg, retType);
if(retType == RetType.RetType_Succeed){
let data = beautify(JSON.stringify(s2c), {
indent_size: 2,
space_in_empty_paren: true,
});
console.log(data);
}
})
.catch((error) => {
console.log("error:", error);
});
} else {
console.log("error", msg);
}
};
websocket.start(addr, port, enable_ssl, key);
//關閉行情連線,連線不再使用之後,要關閉,否則佔用不必要資源
//同時OpenD也限制了最多128條連線
//也可以一個頁面或者一個專案維護一條連線,這裡範例請求一次建立一條連線
setTimeout(()=>{
websocket.stop();
console.log("stop");
}, 5000); // 5秒後斷開
}
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
51
52
53
54
55
56
57
58
- Output
Warrant: errCode 0, retMsg , retType 0
{
"lastPage": false,
"allCount": 1401,
"warrantDataList": [{
"stock": {
"market": 1,
"code": "50710"
},
"owner": {
"market": 1,
"code": "00700"
},
"type": 3,
"issuer": 7,
"maturityTime": "2022-04-14",
"maturityTimestamp": 1649865600,
"listTime": "2021-09-10",
"listTimestamp": 1631203200,
"lastTradeTime": "2022-04-13",
"lastTradeTimestamp": 1649779200,
"recoveryPrice": 502.88,
"conversionRatio": 500,
"lotSize": 50000,
"strikePrice": 498.88,
"lastClosePrice": 0,
"name": "騰訊滙豐二四牛C.C",
"curPrice": 0,
"priceChangeVal": 0,
"changeRate": 0,
"status": 3,
"bidPrice": 0,
"askPrice": 0,
"bidVol": "0",
"askVol": "0",
"volume": "0",
"turnover": 0,
"score": 0.199,
"premium": 2.819,
"breakEvenPoint": 498.88,
"leverage": 0,
"ipop": -2.742,
"priceRecoveryRatio": -3.5157492841234506,
"conversionPrice": 0,
"streetRate": 0,
"streetVol": "0",
"amplitude": 0,
"issueSize": "100000000",
"highPrice": 0,
"lowPrice": 0,
"effectiveLeverage": 0
}, {
"stock": {
"market": 1,
"code": "50833"
},
"owner": {
"market": 1,
"code": "00700"
},
"type": 3,
"issuer": 11,
"maturityTime": "2022-01-28",
"maturityTimestamp": 1643299200,
"listTime": "2021-09-10",
"listTimestamp": 1631203200,
"lastTradeTime": "2022-01-27",
"lastTradeTimestamp": 1643212800,
"recoveryPrice": 518,
"conversionRatio": 100,
"lotSize": 10000,
"strikePrice": 515,
"lastClosePrice": 0,
"name": "騰訊瑞銀二一牛C.C",
"curPrice": 0,
"priceChangeVal": 0,
"changeRate": 0,
"status": 3,
"bidPrice": 0,
"askPrice": 0,
"bidVol": "0",
"askVol": "0",
"volume": "0",
"turnover": 0,
"score": 0.196,
"premium": 6.141,
"breakEvenPoint": 515,
"leverage": 0,
"ipop": -5.786,
"priceRecoveryRatio": -6.3320463320463345,
"conversionPrice": 0,
"streetRate": 0,
"streetVol": "0",
"amplitude": 0,
"issueSize": "40000000",
"highPrice": 0,
"lowPrice": 0,
"effectiveLeverage": 0
}]
}
stop
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
介面限制
- 港股 BMP 權限不支援呼叫此介面
- 每 30 秒內最多請求 60 次篩選窩輪介面
- 每次請求的數據個數上限為 200 個