# 獲取高管背景
- Python
- Proto
- C#
- Java
- C++
- JavaScript
get_company_executive_background(code, leader_name=None)
介紹
獲取指定股票某位高管的背景介紹
參數
參數 類型 說明 code str 股票代碼 如 HK.00700;支援正股及基金leader_name str 高管姓名 使用 get_company_executives 返回的 leader_name 字段值返回
參數 類型 說明 ret RET_CODE 接口調用結果 data dict 當 ret == RET_OK,返回高管背景信息 dict str 當 ret != RET_OK,返回錯誤描述 返回 dict 字段說明:
字段 類型 說明 brief_background str 高管背景簡介
Example
from futu import *
quote_ctx = OpenQuoteContext(host='127.0.0.1', port=11111)
ret, data = quote_ctx.get_company_executive_background("US.AAPL", leader_name="Mr. Timothy D. Cook")
if ret == RET_OK:
print(data)
else:
print('error:', data)
quote_ctx.close()
2
3
4
5
6
7
8
9
- Output
{'brief_background': "On April 20, 2026, Apple Inc. announced that Tim Cook will transition from his role as Chief Executive Officer to Executive Chair of Apple's Board of Directors, effective September 1, 2026. Mr. Cook, 65, has served as Apple's Chief Executive Officer since 2011, having previously served as Apple's Chief Operating Officer from October 2005. Mr. Cook joined Apple in March 1998 and served as Executive Vice President, Worldwide Sales and Operations from February 2002 to October 2005. From October 2000 to February 2002, Mr. Cook served as Senior Vice President, Worldwide Operations, Sales, Service and Support. From March 1998 to October 2000, Mr. Cook served as Senior Vice President, Worldwide Operations. Mr. Cook serves on the Board of Directors of The National Football Foundation & College Hall of Fame, Inc., the Board of Trustees of Duke University, and on the Leadership Council for the Malala Fund, an international non-profit organization that advocates for girls' education. Other Public Company Boards: Current: NIKE, Inc."}
# Qot_GetCompanyExecutiveBackground.proto
介紹
獲取高管背景
參數
message C2S
{
required Qot_Common.Security security = 1; // 股票
optional string leaderName = 2; // 高管姓名(使用 GetCompanyExecutives 返回的 leaderName 字段)
}
message Request
{
required C2S c2s = 1;
}
2
3
4
5
6
7
8
9
10
- 股票結構參見 Security
- 返回
message S2C
{
optional string briefBackground = 1; // 高管背景簡介
}
message Response
{
required int32 retType = 1 [default = -400]; // 返回結果,詳見 Common.RetType
optional string retMsg = 2; // 返回結果描述
optional int32 errCode = 3; // 錯誤碼
optional S2C s2c = 4;
}
2
3
4
5
6
7
8
9
10
11
12
- 接口調用結果,結構參見 RetType
協議 ID
3245
uint GetCompanyExecutiveBackground(QotGetCompanyExecutiveBackground.Request req);
virtual void OnReply_GetCompanyExecutiveBackground(FTAPI_Conn client, uint nSerialNo, QotGetCompanyExecutiveBackground.Response rsp);
介紹
獲取高管背景
參數
message C2S
{
required Qot_Common.Security security = 1; // 股票
optional string leaderName = 2; // 高管姓名(使用 GetCompanyExecutives 返回的 leaderName 字段)
}
message Request
{
required C2S c2s = 1;
}
2
3
4
5
6
7
8
9
10
- 股票結構參見 Security
- 返回
message S2C
{
optional string briefBackground = 1; // 高管背景簡介
}
message Response
{
required int32 retType = 1 [default = -400]; // 返回結果,詳見 Common.RetType
optional string retMsg = 2; // 返回結果描述
optional int32 errCode = 3; // 錯誤碼
optional S2C s2c = 4;
}
2
3
4
5
6
7
8
9
10
11
12
- 接口調用結果,結構參見 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;
QotCommon.Security sec = QotCommon.Security.CreateBuilder()
.SetMarket((int)QotCommon.QotMarket.QotMarket_US_Security)
.SetCode("AAPL")
.Build();
QotGetCompanyExecutiveBackground.C2S c2s = QotGetCompanyExecutiveBackground.C2S.CreateBuilder()
.SetSecurity(sec)
.SetLeaderName("Mr. Timothy D. Cook")
.Build();
QotGetCompanyExecutiveBackground.Request req = QotGetCompanyExecutiveBackground.Request.CreateBuilder().SetC2S(c2s).Build();
uint seqNo = qot.GetCompanyExecutiveBackground(req);
Console.Write("Send QotGetCompanyExecutiveBackground: {0}\n", seqNo);
}
public void OnDisconnect(FTAPI_Conn client, long errCode)
{
Console.Write("Qot onDisConnect: {0}\n", errCode);
}
public void OnReply_GetCompanyExecutiveBackground(FTAPI_Conn client, uint nSerialNo, QotGetCompanyExecutiveBackground.Response rsp)
{
Console.Write("Reply: QotGetCompanyExecutiveBackground: {0} {1}\n", nSerialNo, rsp.ToString());
}
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
54
55
56
57
- Output
sent seqNo=3
retType: 0
retMsg: ""
errCode: 0
s2c {
briefBackground: "On April 20, 2026, Apple Inc. announced that Tim Cook will transition from his role as Chief Executive Officer to Executive Chair of Apple\'s Board of Directors, effective September 1, 2026. Mr. Cook, 65, has served as Apple\'s Chief Executive Officer since 2011, having previousl...
}
2
3
4
5
6
7
int getCompanyExecutiveBackground(QotGetCompanyExecutiveBackground.Request req);
void onReply_GetCompanyExecutiveBackground(FTAPI_Conn client, int nSerialNo, QotGetCompanyExecutiveBackground.Response rsp);
介紹
獲取高管背景
參數
message C2S
{
required Qot_Common.Security security = 1; // 股票
optional string leaderName = 2; // 高管姓名(使用 GetCompanyExecutives 返回的 leaderName 字段)
}
message Request
{
required C2S c2s = 1;
}
2
3
4
5
6
7
8
9
10
- 股票結構參見 Security
- 返回
message S2C
{
optional string briefBackground = 1; // 高管背景簡介
}
message Response
{
required int32 retType = 1 [default = -400]; // 返回結果,詳見 Common.RetType
optional string retMsg = 2; // 返回結果描述
optional int32 errCode = 3; // 錯誤碼
optional S2C s2c = 4;
}
2
3
4
5
6
7
8
9
10
11
12
- 接口調用結果,結構參見 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;
QotCommon.Security sec = QotCommon.Security.newBuilder()
.setMarket(QotCommon.QotMarket.QotMarket_US_Security_VALUE)
.setCode("AAPL")
.build();
QotGetCompanyExecutiveBackground.C2S c2s = QotGetCompanyExecutiveBackground.C2S.newBuilder()
.setSecurity(sec)
.setLeaderName("Mr. Timothy D. Cook")
.build();
QotGetCompanyExecutiveBackground.Request req = QotGetCompanyExecutiveBackground.Request.newBuilder().setC2S(c2s).build();
int seqNo = qot.getCompanyExecutiveBackground(req);
System.out.printf("Send QotGetCompanyExecutiveBackground: %d\n", seqNo);
}
@Override
public void onDisconnect(FTAPI_Conn client, long errCode) {
System.out.printf("Qot onDisConnect: %d\n", errCode);
}
@Override
public void onReply_GetCompanyExecutiveBackground(FTAPI_Conn client, int nSerialNo, QotGetCompanyExecutiveBackground.Response rsp) {
if (rsp.getRetType() != 0) {
System.out.printf("QotGetCompanyExecutiveBackground failed: %s\n", rsp.getRetMsg());
}
else {
try {
String json = JsonFormat.printer().print(rsp);
System.out.printf("Receive QotGetCompanyExecutiveBackground: %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
66
67
- Output
Qot onInitConnect: ret=0 desc= connID=7459212690693859869
Send Qot_GetCompanyExecutiveBackground: 2
Receive Qot_GetCompanyExecutiveBackground: retType: 0
retMsg: ""
errCode: 0
s2c {
briefBackground: "On April 20, 2026, Apple Inc. announced that Tim Cook will transition from his role as Chief Executive Officer to Executive Chair of Apple\'s Board of Directors, effective September 1, 2026. Mr. Cook, 65, has served as Apple\'s Chief Executive Officer since 2011, having previousl...
}
2
3
4
5
6
7
8
Futu::u32_t GetCompanyExecutiveBackground(const Qot_GetCompanyExecutiveBackground::Request &stReq);
virtual void OnReply_GetCompanyExecutiveBackground(Futu::u32_t nSerialNo, const Qot_GetCompanyExecutiveBackground::Response &stRsp) = 0;
介紹
獲取高管背景
參數
message C2S
{
required Qot_Common.Security security = 1; // 股票
optional string leaderName = 2; // 高管姓名(使用 GetCompanyExecutives 返回的 leaderName 字段)
}
message Request
{
required C2S c2s = 1;
}
2
3
4
5
6
7
8
9
10
- 股票結構參見 Security
- 返回
message S2C
{
optional string briefBackground = 1; // 高管背景簡介
}
message Response
{
required int32 retType = 1 [default = -400]; // 返回結果,詳見 Common.RetType
optional string retMsg = 2; // 返回結果描述
optional int32 errCode = 3; // 錯誤碼
optional S2C s2c = 4;
}
2
3
4
5
6
7
8
9
10
11
12
- 接口調用結果,結構參見 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;
// construct request message
Qot_GetCompanyExecutiveBackground::Request req;
Qot_GetCompanyExecutiveBackground::C2S *c2s = req.mutable_c2s();
Qot_Common::Security *sec = c2s->mutable_security();
sec->set_code("AAPL");
sec->set_market(Qot_Common::QotMarket::QotMarket_US_Security);
c2s->set_leadername("Mr. Timothy D. Cook");
m_pQotApi->GetCompanyExecutiveBackground(req);
cout << "GetCompanyExecutiveBackground" << endl;
}
virtual void OnReply_GetCompanyExecutiveBackground(Futu::u32_t nSerialNo, const Qot_GetCompanyExecutiveBackground::Response &stRsp){
cout << "OnReply_GetCompanyExecutiveBackground:" << endl;
// print response
// ProtoBufToBodyData and UTF8ToLocal refer to tool.h in Samples
string resp_str;
ProtoBufToBodyData(stRsp, resp_str);
cout << UTF8ToLocal(resp_str) << endl;
}
protected:
FTAPI_Qot *m_pQotApi;
};
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
- Output
onInitConnect: ret=0 desc=Succeed!
Send Qot_GetCompanyExecutiveBackground seqNo=3
retType: 0
retMsg: ""
errCode: 0
s2c {
briefBackground: "On April 20, 2026, Apple Inc. announced that Tim Cook will transition from his role as Chief Executive Officer to Executive Chair of Apple\'s Board of Directors, effective September 1, 2026. Mr. Cook, 65, has served as Apple\'s Chief Executive Officer since 2011, having previousl...
}
2
3
4
5
6
7
8
GetCompanyExecutiveBackground(req);
介紹
獲取高管背景
參數
message C2S
{
required Qot_Common.Security security = 1; // 股票
optional string leaderName = 2; // 高管姓名(使用 GetCompanyExecutives 返回的 leaderName 字段)
}
message Request
{
required C2S c2s = 1;
}
2
3
4
5
6
7
8
9
10
- 股票結構參見 Security
- 返回
message S2C
{
optional string briefBackground = 1; // 高管背景簡介
}
message Response
{
required int32 retType = 1 [default = -400]; // 返回結果,詳見 Common.RetType
optional string retMsg = 2; // 返回結果描述
optional int32 errCode = 3; // 錯誤碼
optional S2C s2c = 4;
}
2
3
4
5
6
7
8
9
10
11
12
- 接口調用結果,結構參見 RetType
- Example
import ftWebsocket from "futu-api";
import { Common, Qot_Common } from "futu-api/proto";
import beautify from "js-beautify";
function QotGetCompanyExecutiveBackground(){
const { RetType } = Common
const { 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: {
security: {
market: QotMarket.QotMarket_US_Security,
code: "AAPL",
},
leaderName: "Mr. Timothy D. Cook",
},
};
websocket.GetCompanyExecutiveBackground(req)
.then((res) => {
let { errCode, retMsg, retType,s2c } = res
console.log("GetCompanyExecutiveBackground: 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);
setTimeout(()=>{
websocket.stop();
console.log("stop");
}, 5000);
}
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
- Output
GetCompanyExecutiveBackground: errCode 0, retMsg , retType 0
{
"briefBackground": "On April 20, 2026, Apple Inc. announced that Tim Cook will transition from his role as Chief Executive Officer to Executive Chair of Apple's Board of Directors, effective September 1, 2026. Mr. Cook, 65, has served as Apple's Chief Executive Officer since 2011, having previousl...
}
stop
2
3
4
5
接口限制
- 每 30 秒內最多請求 30 次。
- 支援正股及基金。
- Python
- Proto
- C#
- Java
- C++
- JavaScript
get_company_executive_background(code, leader_name=None)
介紹
獲取指定股票某位高管的背景介紹
參數
參數 類型 說明 code str 股票代碼 如 HK.00700;支援正股及基金leader_name str 高管姓名 使用 get_company_executives 返回的 leader_name 字段值返回
參數 類型 說明 ret RET_CODE 接口調用結果 data dict 當 ret == RET_OK,返回高管背景信息 dict str 當 ret != RET_OK,返回錯誤描述 返回 dict 字段說明:
字段 類型 說明 brief_background str 高管背景簡介
Example
from moomoo import *
quote_ctx = OpenQuoteContext(host='127.0.0.1', port=11111)
ret, data = quote_ctx.get_company_executive_background("US.AAPL", leader_name="Mr. Timothy D. Cook")
if ret == RET_OK:
print(data)
else:
print('error:', data)
quote_ctx.close()
2
3
4
5
6
7
8
9
- Output
{'brief_background': "On April 20, 2026, Apple Inc. announced that Tim Cook will transition from his role as Chief Executive Officer to Executive Chair of Apple's Board of Directors, effective September 1, 2026. Mr. Cook, 65, has served as Apple's Chief Executive Officer since 2011, having previously served as Apple's Chief Operating Officer from October 2005. Mr. Cook joined Apple in March 1998 and served as Executive Vice President, Worldwide Sales and Operations from February 2002 to October 2005. From October 2000 to February 2002, Mr. Cook served as Senior Vice President, Worldwide Operations, Sales, Service and Support. From March 1998 to October 2000, Mr. Cook served as Senior Vice President, Worldwide Operations. Mr. Cook serves on the Board of Directors of The National Football Foundation & College Hall of Fame, Inc., the Board of Trustees of Duke University, and on the Leadership Council for the Malala Fund, an international non-profit organization that advocates for girls' education. Other Public Company Boards: Current: NIKE, Inc."}
# Qot_GetCompanyExecutiveBackground.proto
介紹
獲取高管背景
參數
message C2S
{
required Qot_Common.Security security = 1; // 股票
optional string leaderName = 2; // 高管姓名(使用 GetCompanyExecutives 返回的 leaderName 字段)
}
message Request
{
required C2S c2s = 1;
}
2
3
4
5
6
7
8
9
10
- 股票結構參見 Security
- 返回
message S2C
{
optional string briefBackground = 1; // 高管背景簡介
}
message Response
{
required int32 retType = 1 [default = -400]; // 返回結果,詳見 Common.RetType
optional string retMsg = 2; // 返回結果描述
optional int32 errCode = 3; // 錯誤碼
optional S2C s2c = 4;
}
2
3
4
5
6
7
8
9
10
11
12
- 接口調用結果,結構參見 RetType
協議 ID
3245
uint GetCompanyExecutiveBackground(QotGetCompanyExecutiveBackground.Request req);
virtual void OnReply_GetCompanyExecutiveBackground(MMAPI_Conn client, uint nSerialNo, QotGetCompanyExecutiveBackground.Response rsp);
介紹
獲取高管背景
參數
message C2S
{
required Qot_Common.Security security = 1; // 股票
optional string leaderName = 2; // 高管姓名(使用 GetCompanyExecutives 返回的 leaderName 字段)
}
message Request
{
required C2S c2s = 1;
}
2
3
4
5
6
7
8
9
10
- 股票結構參見 Security
- 返回
message S2C
{
optional string briefBackground = 1; // 高管背景簡介
}
message Response
{
required int32 retType = 1 [default = -400]; // 返回結果,詳見 Common.RetType
optional string retMsg = 2; // 返回結果描述
optional int32 errCode = 3; // 錯誤碼
optional S2C s2c = 4;
}
2
3
4
5
6
7
8
9
10
11
12
- 接口調用結果,結構參見 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;
QotCommon.Security sec = QotCommon.Security.CreateBuilder()
.SetMarket((int)QotCommon.QotMarket.QotMarket_US_Security)
.SetCode("AAPL")
.Build();
QotGetCompanyExecutiveBackground.C2S c2s = QotGetCompanyExecutiveBackground.C2S.CreateBuilder()
.SetSecurity(sec)
.SetLeaderName("Mr. Timothy D. Cook")
.Build();
QotGetCompanyExecutiveBackground.Request req = QotGetCompanyExecutiveBackground.Request.CreateBuilder().SetC2S(c2s).Build();
uint seqNo = qot.GetCompanyExecutiveBackground(req);
Console.Write("Send QotGetCompanyExecutiveBackground: {0}\n", seqNo);
}
public void OnDisconnect(MMAPI_Conn client, long errCode)
{
Console.Write("Qot onDisConnect: {0}\n", errCode);
}
public void OnReply_GetCompanyExecutiveBackground(MMAPI_Conn client, uint nSerialNo, QotGetCompanyExecutiveBackground.Response rsp)
{
Console.Write("Reply: QotGetCompanyExecutiveBackground: {0} {1}\n", nSerialNo, rsp.ToString());
}
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
54
55
56
57
- Output
sent seqNo=3
retType: 0
retMsg: ""
errCode: 0
s2c {
briefBackground: "On April 20, 2026, Apple Inc. announced that Tim Cook will transition from his role as Chief Executive Officer to Executive Chair of Apple\'s Board of Directors, effective September 1, 2026. Mr. Cook, 65, has served as Apple\'s Chief Executive Officer since 2011, having previousl...
}
2
3
4
5
6
7
int getCompanyExecutiveBackground(QotGetCompanyExecutiveBackground.Request req);
void onReply_GetCompanyExecutiveBackground(MMAPI_Conn client, int nSerialNo, QotGetCompanyExecutiveBackground.Response rsp);
介紹
獲取高管背景
參數
message C2S
{
required Qot_Common.Security security = 1; // 股票
optional string leaderName = 2; // 高管姓名(使用 GetCompanyExecutives 返回的 leaderName 字段)
}
message Request
{
required C2S c2s = 1;
}
2
3
4
5
6
7
8
9
10
- 股票結構參見 Security
- 返回
message S2C
{
optional string briefBackground = 1; // 高管背景簡介
}
message Response
{
required int32 retType = 1 [default = -400]; // 返回結果,詳見 Common.RetType
optional string retMsg = 2; // 返回結果描述
optional int32 errCode = 3; // 錯誤碼
optional S2C s2c = 4;
}
2
3
4
5
6
7
8
9
10
11
12
- 接口調用結果,結構參見 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;
QotCommon.Security sec = QotCommon.Security.newBuilder()
.setMarket(QotCommon.QotMarket.QotMarket_US_Security_VALUE)
.setCode("AAPL")
.build();
QotGetCompanyExecutiveBackground.C2S c2s = QotGetCompanyExecutiveBackground.C2S.newBuilder()
.setSecurity(sec)
.setLeaderName("Mr. Timothy D. Cook")
.build();
QotGetCompanyExecutiveBackground.Request req = QotGetCompanyExecutiveBackground.Request.newBuilder().setC2S(c2s).build();
int seqNo = qot.getCompanyExecutiveBackground(req);
System.out.printf("Send QotGetCompanyExecutiveBackground: %d\n", seqNo);
}
@Override
public void onDisconnect(MMAPI_Conn client, long errCode) {
System.out.printf("Qot onDisConnect: %d\n", errCode);
}
@Override
public void onReply_GetCompanyExecutiveBackground(MMAPI_Conn client, int nSerialNo, QotGetCompanyExecutiveBackground.Response rsp) {
if (rsp.getRetType() != 0) {
System.out.printf("QotGetCompanyExecutiveBackground failed: %s\n", rsp.getRetMsg());
}
else {
try {
String json = JsonFormat.printer().print(rsp);
System.out.printf("Receive QotGetCompanyExecutiveBackground: %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
66
67
- Output
Qot onInitConnect: ret=0 desc= connID=7459212690693859869
Send Qot_GetCompanyExecutiveBackground: 2
Receive Qot_GetCompanyExecutiveBackground: retType: 0
retMsg: ""
errCode: 0
s2c {
briefBackground: "On April 20, 2026, Apple Inc. announced that Tim Cook will transition from his role as Chief Executive Officer to Executive Chair of Apple\'s Board of Directors, effective September 1, 2026. Mr. Cook, 65, has served as Apple\'s Chief Executive Officer since 2011, having previousl...
}
2
3
4
5
6
7
8
moomoo::u32_t GetCompanyExecutiveBackground(const Qot_GetCompanyExecutiveBackground::Request &stReq);
virtual void OnReply_GetCompanyExecutiveBackground(moomoo::u32_t nSerialNo, const Qot_GetCompanyExecutiveBackground::Response &stRsp) = 0;
介紹
獲取高管背景
參數
message C2S
{
required Qot_Common.Security security = 1; // 股票
optional string leaderName = 2; // 高管姓名(使用 GetCompanyExecutives 返回的 leaderName 字段)
}
message Request
{
required C2S c2s = 1;
}
2
3
4
5
6
7
8
9
10
- 股票結構參見 Security
- 返回
message S2C
{
optional string briefBackground = 1; // 高管背景簡介
}
message Response
{
required int32 retType = 1 [default = -400]; // 返回結果,詳見 Common.RetType
optional string retMsg = 2; // 返回結果描述
optional int32 errCode = 3; // 錯誤碼
optional S2C s2c = 4;
}
2
3
4
5
6
7
8
9
10
11
12
- 接口調用結果,結構參見 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;
// construct request message
Qot_GetCompanyExecutiveBackground::Request req;
Qot_GetCompanyExecutiveBackground::C2S *c2s = req.mutable_c2s();
Qot_Common::Security *sec = c2s->mutable_security();
sec->set_code("AAPL");
sec->set_market(Qot_Common::QotMarket::QotMarket_US_Security);
c2s->set_leadername("Mr. Timothy D. Cook");
m_pQotApi->GetCompanyExecutiveBackground(req);
cout << "GetCompanyExecutiveBackground" << endl;
}
virtual void OnReply_GetCompanyExecutiveBackground(moomoo::u32_t nSerialNo, const Qot_GetCompanyExecutiveBackground::Response &stRsp){
cout << "OnReply_GetCompanyExecutiveBackground:" << endl;
// print response
// ProtoBufToBodyData and UTF8ToLocal refer to tool.h in Samples
string resp_str;
ProtoBufToBodyData(stRsp, resp_str);
cout << UTF8ToLocal(resp_str) << endl;
}
protected:
MMAPI_Qot *m_pQotApi;
};
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
- Output
onInitConnect: ret=0 desc=Succeed!
Send Qot_GetCompanyExecutiveBackground seqNo=3
retType: 0
retMsg: ""
errCode: 0
s2c {
briefBackground: "On April 20, 2026, Apple Inc. announced that Tim Cook will transition from his role as Chief Executive Officer to Executive Chair of Apple\'s Board of Directors, effective September 1, 2026. Mr. Cook, 65, has served as Apple\'s Chief Executive Officer since 2011, having previousl...
}
2
3
4
5
6
7
8
GetCompanyExecutiveBackground(req);
介紹
獲取高管背景
參數
message C2S
{
required Qot_Common.Security security = 1; // 股票
optional string leaderName = 2; // 高管姓名(使用 GetCompanyExecutives 返回的 leaderName 字段)
}
message Request
{
required C2S c2s = 1;
}
2
3
4
5
6
7
8
9
10
- 股票結構參見 Security
- 返回
message S2C
{
optional string briefBackground = 1; // 高管背景簡介
}
message Response
{
required int32 retType = 1 [default = -400]; // 返回結果,詳見 Common.RetType
optional string retMsg = 2; // 返回結果描述
optional int32 errCode = 3; // 錯誤碼
optional S2C s2c = 4;
}
2
3
4
5
6
7
8
9
10
11
12
- 接口調用結果,結構參見 RetType
- Example
import mmWebsocket from "moomoo-api";
import { Common, Qot_Common } from "moomoo-api/proto";
import beautify from "js-beautify";
function QotGetCompanyExecutiveBackground(){
const { RetType } = Common
const { 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: {
security: {
market: QotMarket.QotMarket_US_Security,
code: "AAPL",
},
leaderName: "Mr. Timothy D. Cook",
},
};
websocket.GetCompanyExecutiveBackground(req)
.then((res) => {
let { errCode, retMsg, retType,s2c } = res
console.log("GetCompanyExecutiveBackground: 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);
setTimeout(()=>{
websocket.stop();
console.log("stop");
}, 5000);
}
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
- Output
GetCompanyExecutiveBackground: errCode 0, retMsg , retType 0
{
"briefBackground": "On April 20, 2026, Apple Inc. announced that Tim Cook will transition from his role as Chief Executive Officer to Executive Chair of Apple's Board of Directors, effective September 1, 2026. Mr. Cook, 65, has served as Apple's Chief Executive Officer since 2011, having previousl...
}
stop
2
3
4
5
接口限制
- 每 30 秒內最多請求 30 次。
- 支援正股及基金。