# 期权卖方专区
- Python
- Proto
- C#
- Java
- C++
- JavaScript
get_option_seller_screener(market, seller_type, sort_type=None, is_asc=None, filter_list=None)
介绍
获取期权卖方专区筛选列表,返回适合卖方策略(Cash Secured Put / Covered Call)的期权合约,包含收益率、行权概率等数据。
参数
参数 类型 说明 market OptionMarket 期权市场类型 US_SECURITY=美股股票期权、HK_SECURITY=港股股票期权seller_type SellerType 卖方策略类型 COVERED_CALL=备兑看涨、CASH_SECURED_PUT=现金担保卖出看跌(港股仅支持 CASH_SECURED_PUT)sort_type SellerSortType 排序类型 ANNUALIZED_RETURN=年化收益率、INTERVAL_RETURN=区间收益率、ITM_PROBABILITY=行权概率、PREMIUM=权利金is_asc bool 是否升序 默认 False(降序)filter_list list[SellerFilter] 筛选条件列表 多条件为 AND 关系返回
参数 类型 说明 ret RET_CODE 接口调用结果 data pandas.DataFrame 当 ret == RET_OK,返回筛选结果 str 当 ret != RET_OK,返回错误描述 返回 DataFrame 字段:
字段 类型 说明 option str 期权合约代码 name str 期权名称 option_type str 期权方向 CALL、PUTstrike_price float 行权价 strike_time str 到期日时间字符串 strike_timestamp float 到期日时间戳(Unix 秒) left_days int 距到期天数 option_price float 期权价格 stock_price float 标的股票价格 premium float 权利金 otm_degree float 价外程度(%) iv float 隐含波动率(%) interval_return float 区间收益率(%) annualized_return float 年化收益率(%) itm_probability float 行权概率(%) striked_interval_return float 行权时区间收益率(%) 仅 Covered Callstriked_annualized_return float 行权时年化收益率(%) 仅 Covered Callowner str 标的股票代码
Example
from futu import *
quote_ctx = OpenQuoteContext(host='127.0.0.1', port=11111)
ret, data = quote_ctx.get_option_seller_screener(
market=OptionMarket.US_SECURITY,
seller_type=SellerType.COVERED_CALL,
sort_type=SellerSortType.ANNUALIZED_RETURN,
is_asc=False
)
if ret == RET_OK:
print(data)
else:
print('error:', data)
quote_ctx.close()
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
- Output
option name option_type strike_price strike_time strike_timestamp left_days option_price stock_price premium otm_degree iv interval_return annualized_return itm_probability striked_interval_return striked_annualized_return owner
0 US.SOXL260618C235000 SOXL 260618 235.00C CALL 235.0 2026-06-18 1.781755e+09 3 21.850 234.68 2185.0 0.136 234.988 10.266 1074.855 45.724 10.416 1090.597 US.SOXL
1 US.SOXL260618C237500 SOXL 260618 237.50C CALL 237.5 2026-06-18 1.781755e+09 3 20.675 234.68 2067.5 1.201 234.423 9.660 1011.470 43.682 10.978 1149.431 US.SOXL
2 US.SOXL260618C240000 SOXL 260618 240.00C CALL 240.0 2026-06-18 1.781755e+09 3 19.250 234.68 1925.0 2.266 230.652 8.935 935.526 41.678 11.405 1194.071 US.SOXL
3 US.WDS260618C25000 WDS 260618 25.00C CALL 25.0 2026-06-18 1.781755e+09 3 1.875 23.07 187.5 8.365 292.148 8.846 928.963 11.794 17.952 1885.177 US.WDS
4 US.SOXL260618C242500 SOXL 260618 242.50C CALL 242.5 2026-06-18 1.781755e+09 3 18.350 234.68 1835.0 3.332 232.108 8.482 888.077 39.715 12.097 1266.538 US.SOXL
...
2
3
4
5
6
7
# Qot_GetOptionSellerScreener.proto
介绍
获取期权卖方专区筛选列表
参数
message C2S {
required int32 optionMarket = 1; // Qot_OptionCommon.OptionMarket
required int32 sellerType = 2; // Qot_OptionCommon.SellerType
optional int32 sortType = 3; // Qot_OptionCommon.SellerSortType
optional bool isAsc = 4; // 默认 false
repeated Qot_OptionCommon.SellerIndicator filterList = 5;
}
message Request {
required C2S c2s = 1;
}
2
3
4
5
6
7
8
9
10
11
- 返回
message SellerItem {
required Qot_Common.Security option = 1;
optional string name = 2;
optional int32 optionType = 3; // Qot_Common.OptionType
optional double strikePrice = 4;
optional string strikeTime = 5;
optional double strikeTimestamp = 6;
optional int32 leftDays = 7;
optional double optionPrice = 8;
optional double stockPrice = 9;
optional double premium = 10;
optional double otmDegree = 11; // (%)
optional double iv = 12; // (%)
optional double intervalReturn = 13; // (%)
optional double annualizedReturn = 14; // (%)
optional double itmProbability = 15; // (%)
optional double strikedIntervalReturn = 16; // (%)
optional double strikedAnnualizedReturn = 17; // (%)
optional Qot_Common.Security owner = 18;
}
message S2C {
repeated SellerItem itemList = 1;
}
message Response {
required int32 retType = 1 [default = -400];
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
- 接口调用结果,结构参见 RetType
协议 ID
3314
uint GetOptionSellerScreener(Qot_GetOptionSellerScreener.Request req); virtual void OnReply_GetOptionSellerScreener(FTAPI_Conn client, uint nSerialNo, Qot_GetOptionSellerScreener.Response rsp);
介绍
获取期权卖方专区筛选列表
参数
message C2S {
required int32 optionMarket = 1; // Qot_OptionCommon.OptionMarket
required int32 sellerType = 2; // Qot_OptionCommon.SellerType
optional int32 sortType = 3; // Qot_OptionCommon.SellerSortType
optional bool isAsc = 4; // 默认 false
repeated Qot_OptionCommon.SellerIndicator filterList = 5;
}
message Request {
required C2S c2s = 1;
}
2
3
4
5
6
7
8
9
10
11
- 返回
message SellerItem {
required Qot_Common.Security option = 1;
optional string name = 2;
optional int32 optionType = 3; // Qot_Common.OptionType
optional double strikePrice = 4;
optional string strikeTime = 5;
optional double strikeTimestamp = 6;
optional int32 leftDays = 7;
optional double optionPrice = 8;
optional double stockPrice = 9;
optional double premium = 10;
optional double otmDegree = 11; // (%)
optional double iv = 12; // (%)
optional double intervalReturn = 13; // (%)
optional double annualizedReturn = 14; // (%)
optional double itmProbability = 15; // (%)
optional double strikedIntervalReturn = 16; // (%)
optional double strikedAnnualizedReturn = 17; // (%)
optional Qot_Common.Security owner = 18;
}
message S2C {
repeated SellerItem itemList = 1;
}
message Response {
required int32 retType = 1 [default = -400];
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
- 接口调用结果,结构参见 RetType
协议 ID
3314
int getOptionSellerScreener(Qot_GetOptionSellerScreener.Request req) onReply_GetOptionSellerScreener(FTAPI_Conn client, int nSerialNo, Qot_GetOptionSellerScreener.Response rsp)
介绍
获取期权卖方专区筛选列表
参数
message C2S {
required int32 optionMarket = 1; // Qot_OptionCommon.OptionMarket
required int32 sellerType = 2; // Qot_OptionCommon.SellerType
optional int32 sortType = 3; // Qot_OptionCommon.SellerSortType
optional bool isAsc = 4; // 默认 false
repeated Qot_OptionCommon.SellerIndicator filterList = 5;
}
message Request {
required C2S c2s = 1;
}
2
3
4
5
6
7
8
9
10
11
- 返回
message SellerItem {
required Qot_Common.Security option = 1;
optional string name = 2;
optional int32 optionType = 3; // Qot_Common.OptionType
optional double strikePrice = 4;
optional string strikeTime = 5;
optional double strikeTimestamp = 6;
optional int32 leftDays = 7;
optional double optionPrice = 8;
optional double stockPrice = 9;
optional double premium = 10;
optional double otmDegree = 11; // (%)
optional double iv = 12; // (%)
optional double intervalReturn = 13; // (%)
optional double annualizedReturn = 14; // (%)
optional double itmProbability = 15; // (%)
optional double strikedIntervalReturn = 16; // (%)
optional double strikedAnnualizedReturn = 17; // (%)
optional Qot_Common.Security owner = 18;
}
message S2C {
repeated SellerItem itemList = 1;
}
message Response {
required int32 retType = 1 [default = -400];
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
- 接口调用结果,结构参见 RetType
协议 ID
3314
Futu::u32_t GetOptionSellerScreener(const Qot_GetOptionSellerScreener::Request &stReq);
virtual void OnReply_GetOptionSellerScreener(Futu::u32_t nSerialNo, const Qot_GetOptionSellerScreener::Response &stRsp) = 0;
介绍
获取期权卖方专区筛选列表
参数
message C2S {
required int32 optionMarket = 1; // Qot_OptionCommon.OptionMarket
required int32 sellerType = 2; // Qot_OptionCommon.SellerType
optional int32 sortType = 3; // Qot_OptionCommon.SellerSortType
optional bool isAsc = 4; // 默认 false
repeated Qot_OptionCommon.SellerIndicator filterList = 5;
}
message Request {
required C2S c2s = 1;
}
2
3
4
5
6
7
8
9
10
11
- 返回
message SellerItem {
required Qot_Common.Security option = 1;
optional string name = 2;
optional int32 optionType = 3; // Qot_Common.OptionType
optional double strikePrice = 4;
optional string strikeTime = 5;
optional double strikeTimestamp = 6;
optional int32 leftDays = 7;
optional double optionPrice = 8;
optional double stockPrice = 9;
optional double premium = 10;
optional double otmDegree = 11; // (%)
optional double iv = 12; // (%)
optional double intervalReturn = 13; // (%)
optional double annualizedReturn = 14; // (%)
optional double itmProbability = 15; // (%)
optional double strikedIntervalReturn = 16; // (%)
optional double strikedAnnualizedReturn = 17; // (%)
optional Qot_Common.Security owner = 18;
}
message S2C {
repeated SellerItem itemList = 1;
}
message Response {
required int32 retType = 1 [default = -400];
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
- 接口调用结果,结构参见 RetType
协议 ID
3314
Example
class Program : public FTSPI_Qot, 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) {
Qot_GetOptionSellerScreener::Request req;
Qot_GetOptionSellerScreener::C2S *c2s = req.mutable_c2s();
// TODO: 按 proto 填充 c2s 字段
m_GetOptionSellerScreenerSerialNo = m_pQotApi->GetOptionSellerScreener(req);
}
virtual void OnReply_GetOptionSellerScreener(Futu::u32_t nSerialNo, const Qot_GetOptionSellerScreener::Response &stRsp) {
if (nSerialNo != m_GetOptionSellerScreenerSerialNo) return;
string resp_str;
ProtoBufToBodyData(stRsp, resp_str);
cout << UTF8ToLocal(resp_str) << endl;
}
protected:
FTAPI_Qot *m_pQotApi;
Futu::u32_t m_GetOptionSellerScreenerSerialNo = 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
getOptionSellerScreener(qotGetOptionSellerScreener)
介绍
获取期权卖方专区筛选列表
参数
message C2S {
required int32 optionMarket = 1; // Qot_OptionCommon.OptionMarket
required int32 sellerType = 2; // Qot_OptionCommon.SellerType
optional int32 sortType = 3; // Qot_OptionCommon.SellerSortType
optional bool isAsc = 4; // 默认 false
repeated Qot_OptionCommon.SellerIndicator filterList = 5;
}
message Request {
required C2S c2s = 1;
}
2
3
4
5
6
7
8
9
10
11
- 返回
message SellerItem {
required Qot_Common.Security option = 1;
optional string name = 2;
optional int32 optionType = 3; // Qot_Common.OptionType
optional double strikePrice = 4;
optional string strikeTime = 5;
optional double strikeTimestamp = 6;
optional int32 leftDays = 7;
optional double optionPrice = 8;
optional double stockPrice = 9;
optional double premium = 10;
optional double otmDegree = 11; // (%)
optional double iv = 12; // (%)
optional double intervalReturn = 13; // (%)
optional double annualizedReturn = 14; // (%)
optional double itmProbability = 15; // (%)
optional double strikedIntervalReturn = 16; // (%)
optional double strikedAnnualizedReturn = 17; // (%)
optional Qot_Common.Security owner = 18;
}
message S2C {
repeated SellerItem itemList = 1;
}
message Response {
required int32 retType = 1 [default = -400];
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
- 接口调用结果,结构参见 RetType
协议 ID
3314
Example
import ftWebsocket from "futu-api";
import { Common, Qot_OptionCommon } from "futu-api/proto";
import beautify from "js-beautify";
function QotGetOptionSellerScreener(){
const { RetType } = Common
const { OptionMarket, SellerType, SellerSortType } = Qot_OptionCommon
let [addr, port, enable_ssl, key] = ["127.0.0.1", 11112, false, ''];
let websocket = new ftWebsocket();
websocket.onlogin = (ret, msg)=>{
if (ret) {
const req = {
c2s: {
optionMarket: OptionMarket.OptionMarket_US_Security,
sellerType: SellerType.SellerType_CoveredCall,
sortType: SellerSortType.SellerSortType_AnnualizedReturn,
},
};
websocket.GetOptionSellerScreener(req)
.then((res)=>{
let { errCode, retMsg, retType, s2c } = res
console.log("GetOptionSellerScreener: 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("start error", msg);
}
};
websocket.start(addr, port, enable_ssl, key);
setTimeout(()=>{ websocket.stop(); process.exit(); }, 5000);
}
QotGetOptionSellerScreener()
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
- Output
GetOptionSellerScreener: errCode 0, retMsg , retType 0
{
"itemList": [
{
"option": { "market": 1, "code": "SOXL260618C235000" },
"name": "SOXL 260618 235.00C",
"optionType": 1,
"strikePrice": 235,
"strikeTime": "2026-06-18",
"strikeTimestamp": 1781755000,
"leftDays": 3,
"optionPrice": 21.85,
"stockPrice": 234.68,
"premium": 2185,
"otmDegree": 0.136,
"iv": 234.988,
"intervalReturn": 10.266,
"annualizedReturn": 1074.855,
"itmProbability": 45.724,
"strikedIntervalReturn": 10.416,
"strikedAnnualizedReturn": 1090.597,
"owner": { "market": 1, "code": "SOXL" }
},
{
"option": { "market": 1, "code": "SOXL260618C237500" },
"name": "SOXL 260618 237.50C",
"optionType": 1,
"strikePrice": 237.5,
"strikeTime": "2026-06-18",
"strikeTimestamp": 1781755000,
"leftDays": 3,
"optionPrice": 20.675,
"stockPrice": 234.68,
"premium": 2067.5,
"otmDegree": 1.201,
"iv": 234.423,
"intervalReturn": 9.66,
"annualizedReturn": 1011.47,
"itmProbability": 43.682,
"strikedIntervalReturn": 10.978,
"strikedAnnualizedReturn": 1149.431,
"owner": { "market": 1, "code": "SOXL" }
}
]
}
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
接口限制
- 30 秒内最多请求 60 次期权卖方专区接口
- Python
- Proto
- C#
- Java
- C++
- JavaScript
get_option_seller_screener(market, seller_type, sort_type=None, is_asc=None, filter_list=None)
介绍
获取期权卖方专区筛选列表,返回适合卖方策略(Cash Secured Put / Covered Call)的期权合约,包含收益率、行权概率等数据。
参数
参数 类型 说明 market OptionMarket 期权市场类型 US_SECURITY=美股股票期权、HK_SECURITY=港股股票期权seller_type SellerType 卖方策略类型 COVERED_CALL=备兑看涨、CASH_SECURED_PUT=现金担保卖出看跌(港股仅支持 CASH_SECURED_PUT)sort_type SellerSortType 排序类型 ANNUALIZED_RETURN=年化收益率、INTERVAL_RETURN=区间收益率、ITM_PROBABILITY=行权概率、PREMIUM=权利金is_asc bool 是否升序 默认 False(降序)filter_list list[SellerFilter] 筛选条件列表 多条件为 AND 关系返回
参数 类型 说明 ret RET_CODE 接口调用结果 data pandas.DataFrame 当 ret == RET_OK,返回筛选结果 str 当 ret != RET_OK,返回错误描述 返回 DataFrame 字段:
字段 类型 说明 option str 期权合约代码 name str 期权名称 option_type str 期权方向 CALL、PUTstrike_price float 行权价 strike_time str 到期日时间字符串 strike_timestamp float 到期日时间戳(Unix 秒) left_days int 距到期天数 option_price float 期权价格 stock_price float 标的股票价格 premium float 权利金 otm_degree float 价外程度(%) iv float 隐含波动率(%) interval_return float 区间收益率(%) annualized_return float 年化收益率(%) itm_probability float 行权概率(%) striked_interval_return float 行权时区间收益率(%) 仅 Covered Callstriked_annualized_return float 行权时年化收益率(%) 仅 Covered Callowner str 标的股票代码
Example
from moomoo import *
quote_ctx = OpenQuoteContext(host='127.0.0.1', port=11111)
ret, data = quote_ctx.get_option_seller_screener(
market=OptionMarket.US_SECURITY,
seller_type=SellerType.COVERED_CALL,
sort_type=SellerSortType.ANNUALIZED_RETURN,
is_asc=False
)
if ret == RET_OK:
print(data)
else:
print('error:', data)
quote_ctx.close()
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
- Output
option name option_type strike_price strike_time strike_timestamp left_days option_price stock_price premium otm_degree iv interval_return annualized_return itm_probability striked_interval_return striked_annualized_return owner
0 US.SOXL260618C235000 SOXL 260618 235.00C CALL 235.0 2026-06-18 1.781755e+09 3 21.850 234.68 2185.0 0.136 234.988 10.266 1074.855 45.724 10.416 1090.597 US.SOXL
1 US.SOXL260618C237500 SOXL 260618 237.50C CALL 237.5 2026-06-18 1.781755e+09 3 20.675 234.68 2067.5 1.201 234.423 9.660 1011.470 43.682 10.978 1149.431 US.SOXL
2 US.SOXL260618C240000 SOXL 260618 240.00C CALL 240.0 2026-06-18 1.781755e+09 3 19.250 234.68 1925.0 2.266 230.652 8.935 935.526 41.678 11.405 1194.071 US.SOXL
3 US.WDS260618C25000 WDS 260618 25.00C CALL 25.0 2026-06-18 1.781755e+09 3 1.875 23.07 187.5 8.365 292.148 8.846 928.963 11.794 17.952 1885.177 US.WDS
4 US.SOXL260618C242500 SOXL 260618 242.50C CALL 242.5 2026-06-18 1.781755e+09 3 18.350 234.68 1835.0 3.332 232.108 8.482 888.077 39.715 12.097 1266.538 US.SOXL
...
2
3
4
5
6
7
# Qot_GetOptionSellerScreener.proto
介绍
获取期权卖方专区筛选列表
参数
message C2S {
required int32 optionMarket = 1; // Qot_OptionCommon.OptionMarket
required int32 sellerType = 2; // Qot_OptionCommon.SellerType
optional int32 sortType = 3; // Qot_OptionCommon.SellerSortType
optional bool isAsc = 4; // 默认 false
repeated Qot_OptionCommon.SellerIndicator filterList = 5;
}
message Request {
required C2S c2s = 1;
}
2
3
4
5
6
7
8
9
10
11
- 返回
message SellerItem {
required Qot_Common.Security option = 1;
optional string name = 2;
optional int32 optionType = 3; // Qot_Common.OptionType
optional double strikePrice = 4;
optional string strikeTime = 5;
optional double strikeTimestamp = 6;
optional int32 leftDays = 7;
optional double optionPrice = 8;
optional double stockPrice = 9;
optional double premium = 10;
optional double otmDegree = 11; // (%)
optional double iv = 12; // (%)
optional double intervalReturn = 13; // (%)
optional double annualizedReturn = 14; // (%)
optional double itmProbability = 15; // (%)
optional double strikedIntervalReturn = 16; // (%)
optional double strikedAnnualizedReturn = 17; // (%)
optional Qot_Common.Security owner = 18;
}
message S2C {
repeated SellerItem itemList = 1;
}
message Response {
required int32 retType = 1 [default = -400];
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
- 接口调用结果,结构参见 RetType
协议 ID
3314
uint GetOptionSellerScreener(Qot_GetOptionSellerScreener.Request req); virtual void OnReply_GetOptionSellerScreener(MMAPI_Conn client, uint nSerialNo, Qot_GetOptionSellerScreener.Response rsp);
介绍
获取期权卖方专区筛选列表
参数
message C2S {
required int32 optionMarket = 1; // Qot_OptionCommon.OptionMarket
required int32 sellerType = 2; // Qot_OptionCommon.SellerType
optional int32 sortType = 3; // Qot_OptionCommon.SellerSortType
optional bool isAsc = 4; // 默认 false
repeated Qot_OptionCommon.SellerIndicator filterList = 5;
}
message Request {
required C2S c2s = 1;
}
2
3
4
5
6
7
8
9
10
11
- 返回
message SellerItem {
required Qot_Common.Security option = 1;
optional string name = 2;
optional int32 optionType = 3; // Qot_Common.OptionType
optional double strikePrice = 4;
optional string strikeTime = 5;
optional double strikeTimestamp = 6;
optional int32 leftDays = 7;
optional double optionPrice = 8;
optional double stockPrice = 9;
optional double premium = 10;
optional double otmDegree = 11; // (%)
optional double iv = 12; // (%)
optional double intervalReturn = 13; // (%)
optional double annualizedReturn = 14; // (%)
optional double itmProbability = 15; // (%)
optional double strikedIntervalReturn = 16; // (%)
optional double strikedAnnualizedReturn = 17; // (%)
optional Qot_Common.Security owner = 18;
}
message S2C {
repeated SellerItem itemList = 1;
}
message Response {
required int32 retType = 1 [default = -400];
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
- 接口调用结果,结构参见 RetType
协议 ID
3314
int getOptionSellerScreener(Qot_GetOptionSellerScreener.Request req) onReply_GetOptionSellerScreener(MMAPI_Conn client, int nSerialNo, Qot_GetOptionSellerScreener.Response rsp)
介绍
获取期权卖方专区筛选列表
参数
message C2S {
required int32 optionMarket = 1; // Qot_OptionCommon.OptionMarket
required int32 sellerType = 2; // Qot_OptionCommon.SellerType
optional int32 sortType = 3; // Qot_OptionCommon.SellerSortType
optional bool isAsc = 4; // 默认 false
repeated Qot_OptionCommon.SellerIndicator filterList = 5;
}
message Request {
required C2S c2s = 1;
}
2
3
4
5
6
7
8
9
10
11
- 返回
message SellerItem {
required Qot_Common.Security option = 1;
optional string name = 2;
optional int32 optionType = 3; // Qot_Common.OptionType
optional double strikePrice = 4;
optional string strikeTime = 5;
optional double strikeTimestamp = 6;
optional int32 leftDays = 7;
optional double optionPrice = 8;
optional double stockPrice = 9;
optional double premium = 10;
optional double otmDegree = 11; // (%)
optional double iv = 12; // (%)
optional double intervalReturn = 13; // (%)
optional double annualizedReturn = 14; // (%)
optional double itmProbability = 15; // (%)
optional double strikedIntervalReturn = 16; // (%)
optional double strikedAnnualizedReturn = 17; // (%)
optional Qot_Common.Security owner = 18;
}
message S2C {
repeated SellerItem itemList = 1;
}
message Response {
required int32 retType = 1 [default = -400];
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
- 接口调用结果,结构参见 RetType
协议 ID
3314
Moomoo::u32_t GetOptionSellerScreener(const Qot_GetOptionSellerScreener::Request &stReq);
virtual void OnReply_GetOptionSellerScreener(Moomoo::u32_t nSerialNo, const Qot_GetOptionSellerScreener::Response &stRsp) = 0;
介绍
获取期权卖方专区筛选列表
参数
message C2S {
required int32 optionMarket = 1; // Qot_OptionCommon.OptionMarket
required int32 sellerType = 2; // Qot_OptionCommon.SellerType
optional int32 sortType = 3; // Qot_OptionCommon.SellerSortType
optional bool isAsc = 4; // 默认 false
repeated Qot_OptionCommon.SellerIndicator filterList = 5;
}
message Request {
required C2S c2s = 1;
}
2
3
4
5
6
7
8
9
10
11
- 返回
message SellerItem {
required Qot_Common.Security option = 1;
optional string name = 2;
optional int32 optionType = 3; // Qot_Common.OptionType
optional double strikePrice = 4;
optional string strikeTime = 5;
optional double strikeTimestamp = 6;
optional int32 leftDays = 7;
optional double optionPrice = 8;
optional double stockPrice = 9;
optional double premium = 10;
optional double otmDegree = 11; // (%)
optional double iv = 12; // (%)
optional double intervalReturn = 13; // (%)
optional double annualizedReturn = 14; // (%)
optional double itmProbability = 15; // (%)
optional double strikedIntervalReturn = 16; // (%)
optional double strikedAnnualizedReturn = 17; // (%)
optional Qot_Common.Security owner = 18;
}
message S2C {
repeated SellerItem itemList = 1;
}
message Response {
required int32 retType = 1 [default = -400];
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
- 接口调用结果,结构参见 RetType
协议 ID
3314
Example
class Program : public MMSPI_Qot, 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) {
Qot_GetOptionSellerScreener::Request req;
Qot_GetOptionSellerScreener::C2S *c2s = req.mutable_c2s();
// TODO: 按 proto 填充 c2s 字段
m_GetOptionSellerScreenerSerialNo = m_pQotApi->GetOptionSellerScreener(req);
}
virtual void OnReply_GetOptionSellerScreener(Moomoo::u32_t nSerialNo, const Qot_GetOptionSellerScreener::Response &stRsp) {
if (nSerialNo != m_GetOptionSellerScreenerSerialNo) return;
string resp_str;
ProtoBufToBodyData(stRsp, resp_str);
cout << UTF8ToLocal(resp_str) << endl;
}
protected:
MMAPI_Qot *m_pQotApi;
Moomoo::u32_t m_GetOptionSellerScreenerSerialNo = 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
getOptionSellerScreener(qotGetOptionSellerScreener)
介绍
获取期权卖方专区筛选列表
参数
message C2S {
required int32 optionMarket = 1; // Qot_OptionCommon.OptionMarket
required int32 sellerType = 2; // Qot_OptionCommon.SellerType
optional int32 sortType = 3; // Qot_OptionCommon.SellerSortType
optional bool isAsc = 4; // 默认 false
repeated Qot_OptionCommon.SellerIndicator filterList = 5;
}
message Request {
required C2S c2s = 1;
}
2
3
4
5
6
7
8
9
10
11
- 返回
message SellerItem {
required Qot_Common.Security option = 1;
optional string name = 2;
optional int32 optionType = 3; // Qot_Common.OptionType
optional double strikePrice = 4;
optional string strikeTime = 5;
optional double strikeTimestamp = 6;
optional int32 leftDays = 7;
optional double optionPrice = 8;
optional double stockPrice = 9;
optional double premium = 10;
optional double otmDegree = 11; // (%)
optional double iv = 12; // (%)
optional double intervalReturn = 13; // (%)
optional double annualizedReturn = 14; // (%)
optional double itmProbability = 15; // (%)
optional double strikedIntervalReturn = 16; // (%)
optional double strikedAnnualizedReturn = 17; // (%)
optional Qot_Common.Security owner = 18;
}
message S2C {
repeated SellerItem itemList = 1;
}
message Response {
required int32 retType = 1 [default = -400];
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
- 接口调用结果,结构参见 RetType
协议 ID
3314
Example
import mmWebsocket from "moomoo-api";
import { Common, Qot_OptionCommon } from "moomoo-api/proto";
import beautify from "js-beautify";
function QotGetOptionSellerScreener(){
const { RetType } = Common
const { OptionMarket, SellerType, SellerSortType } = Qot_OptionCommon
let [addr, port, enable_ssl, key] = ["127.0.0.1", 11112, false, ''];
let websocket = new mmWebsocket();
websocket.onlogin = (ret, msg)=>{
if (ret) {
const req = {
c2s: {
optionMarket: OptionMarket.OptionMarket_US_Security,
sellerType: SellerType.SellerType_CoveredCall,
sortType: SellerSortType.SellerSortType_AnnualizedReturn,
},
};
websocket.GetOptionSellerScreener(req)
.then((res)=>{
let { errCode, retMsg, retType, s2c } = res
console.log("GetOptionSellerScreener: 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("start error", msg);
}
};
websocket.start(addr, port, enable_ssl, key);
setTimeout(()=>{ websocket.stop(); process.exit(); }, 5000);
}
QotGetOptionSellerScreener()
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
- Output
GetOptionSellerScreener: errCode 0, retMsg , retType 0
{
"itemList": [
{
"option": { "market": 1, "code": "SOXL260618C235000" },
"name": "SOXL 260618 235.00C",
"optionType": 1,
"strikePrice": 235,
"strikeTime": "2026-06-18",
"strikeTimestamp": 1781755000,
"leftDays": 3,
"optionPrice": 21.85,
"stockPrice": 234.68,
"premium": 2185,
"otmDegree": 0.136,
"iv": 234.988,
"intervalReturn": 10.266,
"annualizedReturn": 1074.855,
"itmProbability": 45.724,
"strikedIntervalReturn": 10.416,
"strikedAnnualizedReturn": 1090.597,
"owner": { "market": 1, "code": "SOXL" }
},
{
"option": { "market": 1, "code": "SOXL260618C237500" },
"name": "SOXL 260618 237.50C",
"optionType": 1,
"strikePrice": 237.5,
"strikeTime": "2026-06-18",
"strikeTimestamp": 1781755000,
"leftDays": 3,
"optionPrice": 20.675,
"stockPrice": 234.68,
"premium": 2067.5,
"otmDegree": 1.201,
"iv": 234.423,
"intervalReturn": 9.66,
"annualizedReturn": 1011.47,
"itmProbability": 43.682,
"strikedIntervalReturn": 10.978,
"strikedAnnualizedReturn": 1149.431,
"owner": { "market": 1, "code": "SOXL" }
}
]
}
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
接口限制
- 30 秒内最多请求 60 次期权卖方专区接口