# 获取晨星研究报告
- Python
- Proto
- C#
- Java
- C++
- JavaScript
get_research_morningstar_report(code)
介绍
获取指定股票的晨星研究报告,包含星级评分、公允价值、护城河、不确定性、财务健康、资本配置、多空观点、分析师观点等
参数
参数 类型 说明 code str 股票代码 返回
参数 类型 说明 ret RET_CODE 接口调用结果 data dict 当 ret == RET_OK,返回晨星研究报告数据字典 str 当 ret != RET_OK,返回错误描述 返回字典包含以下字段:
字段 类型 说明 rating_type MorningstarRatingType 评级类型 0=Unknown,1=Quantitative(定量评级,系统模型给出),2=Qualitative(定性评级,分析师人工给出)star_rating int 晨星星级 取值 1~5 星star_update_time int 星级更新时间戳(秒,对应市场时区) star_update_time_str str 星级更新日期 格式 YYYY-MM-DD,对应市场时区fair_value float 公允价值 fair_value_content dict 公允价值分析,见 StringWithUpdateTime 字段表 economic_moat_label str 护城河评级 如 Wide、Narrow、Noneeconomic_moat_content dict 护城河分析,见 StringWithUpdateTime 字段表 uncertainty_label str 不确定性评级 如 Low、Medium、High、Very High、Extremeuncertainty_content dict 不确定性分析,见 StringWithUpdateTime 字段表 financial_health_label str 财务健康评级 financial_health_content dict 财务健康分析,见 StringWithUpdateTime 字段表 analyst_report_by_line list 分析师署名列表 如 ["William Kerwin, CFA"]analyst_report_update_time int 分析师报告更新时间戳(秒,对应市场时区) analyst_report_update_time_str str 分析师报告更新日期 格式 YYYY-MM-DD,对应市场时区bull_say list 多方观点列表,每项见 StringWithUpdateTime 字段表 bear_say list 空方观点列表,每项见 StringWithUpdateTime 字段表 capital_allocation_label str 资本配置评级 capital_allocation_content dict 资本配置分析,见 StringWithUpdateTime 字段表 analyst_note_title dict 分析师观点标题,见 StringWithUpdateTime 字段表 analyst_note_content dict 分析师观点内容,见 StringWithUpdateTime 字段表 investment_thesis_content dict 投资论点,见 StringWithUpdateTime 字段表 fundamentals_content dict 基本面报告,见 StringWithUpdateTime 字段表 valuation_content dict 估值报告,见 StringWithUpdateTime 字段表 pdf_url str PDF 报告下载链接 StringWithUpdateTime 字段(嵌套文本结构):
字段 类型 说明 context str 文本内容 update_time int 更新时间戳(秒,对应市场时区) update_time_str str 更新日期 格式 YYYY-MM-DD,对应市场时区
Example
import json
from futu import *
quote_ctx = OpenQuoteContext(host='127.0.0.1', port=11111)
ret, data = quote_ctx.get_research_morningstar_report("HK.00700")
if ret == RET_OK:
print(json.dumps(data, indent=2, ensure_ascii=False))
else:
print('error:', data)
quote_ctx.close()
2
3
4
5
6
7
8
9
10
- Output
{
"rating_type": 2,
"star_rating": 4,
"star_update_time": 1778257800,
"star_update_time_str": "2026-05-09",
"fair_value": 800.0,
"fair_value_content": {
"context": "我们对腾讯控股的每股公平价值估计为800港元。我们的估值中约85%来自于腾讯的核心业务,而...
"update_time": 1755138060,
"update_time_str": "2025-08-14"
},
"economic_moat_label": "宽",
"economic_moat_content": {
"context": "腾讯的宽护城河主要基于其庞大用户群的网络效应。此外,腾讯还拥有无形资产、成本优势和...
"update_time": 1766457150,
"update_time_str": "2025-12-23"
},
"uncertainty_label": "较高",
"uncertainty_content": {
"context": "由于监管风险及其核心业务的竞争强度,我们对腾讯的晨星不确定性评级为高。\n\n在支付领域,...
"update_time": 1766457180,
"update_time_str": "2025-12-23"
},
//...
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# Qot_GetResearchMorningstarReport.proto
介绍
获取晨星研究报告
参数
message C2S
{
required Qot_Common.Security security = 1; // 股票
}
message Request
{
required C2S c2s = 1;
}
2
3
4
5
6
7
8
9
- 股票结构参见 Security
- 返回
// 带更新时间的文本内容
message StringWithUpdateTime {
optional string context = 1; // 文本内容
optional int64 updateTime = 2; // 更新时间戳(秒)
optional string updateTimeStr = 3; // 更新时间字符串,格式 YYYY-MM-DD,对应市场时区
}
message S2C
{
optional Qot_Common.MorningstarRatingType ratingType = 1; // 评级类型(详见 Qot_Common.MorningstarRatingType 定义)
optional int32 starRating = 2; // 晨星星级评分,取值 1-5 星
optional int64 starUpdateTime = 3; // 星级更新时间戳(秒)
optional string starUpdateTimeStr = 4; // 星级更新时间字符串,格式 YYYY-MM-DD,对应市场时区
optional double fairValue = 5; // 公允价值
optional StringWithUpdateTime fairValueContent = 6; // 公允价值分析文本及更新时间
optional string economicMoatLabel = 7; // 护城河评级,如 Wide、Narrow、None
optional StringWithUpdateTime economicMoatContent = 8; // 护城河分析文本及更新时间
optional string uncertaintyLabel = 9; // 不确定性评级,如 Low、Medium、High、Very High、Extreme
optional StringWithUpdateTime uncertaintyContent = 10; // 不确定性分析文本及更新时间
optional string financialHealthLabel = 11; // 财务健康评级
optional StringWithUpdateTime financialHealthContent = 12; // 财务健康分析文本及更新时间
repeated string analystReportByLine = 13; // 分析师署名列表,如 ["William Kerwin, CFA"]
optional int64 analystReportUpdateTime = 14; // 分析师报告更新时间戳(秒)
optional string analystReportUpdateTimeStr = 15; // 分析师报告更新时间字符串,格式 YYYY-MM-DD,对应市场时区
repeated StringWithUpdateTime bullSay = 16; // 多方观点列表
repeated StringWithUpdateTime bearSay = 17; // 空方观点列表
optional string capitalAllocationLabel = 18; // 资本配置评级
optional StringWithUpdateTime capitalAllocationContent = 19; // 资本配置分析文本及更新时间
optional StringWithUpdateTime analystNoteTitle = 20; // 分析师观点标题及更新时间
optional StringWithUpdateTime analystNoteContent = 21; // 分析师观点内容文本及更新时间
optional StringWithUpdateTime investmentThesisContent = 22; // 投资论点文本及更新时间
optional StringWithUpdateTime fundamentalsContent = 23; // 基本面报告文本及更新时间
optional StringWithUpdateTime valuationContent = 24; // 估值报告文本及更新时间
optional string pdfUrl = 25; // PDF 报告下载链接
}
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
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
- 接口调用结果,结构参见 RetType
- 晨星评级类型参见 MorningstarRatingType
协议 ID
3231
uint GetResearchMorningstarReport(QotGetResearchMorningstarReport.Request req);
virtual void OnReply_GetResearchMorningstarReport(FTAPI_Conn client, uint nSerialNo, QotGetResearchMorningstarReport.Response rsp);
介绍
获取晨星研究报告
参数
message C2S
{
required Qot_Common.Security security = 1; // 股票
}
message Request
{
required C2S c2s = 1;
}
2
3
4
5
6
7
8
9
- 股票结构参见 Security
- 返回
// 带更新时间的文本内容
message StringWithUpdateTime {
optional string context = 1; // 文本内容
optional int64 updateTime = 2; // 更新时间戳(秒)
optional string updateTimeStr = 3; // 更新时间字符串,格式 YYYY-MM-DD,对应市场时区
}
message S2C
{
optional Qot_Common.MorningstarRatingType ratingType = 1; // 评级类型(详见 Qot_Common.MorningstarRatingType 定义)
optional int32 starRating = 2; // 晨星星级评分,取值 1-5 星
optional int64 starUpdateTime = 3; // 星级更新时间戳(秒)
optional string starUpdateTimeStr = 4; // 星级更新时间字符串,格式 YYYY-MM-DD,对应市场时区
optional double fairValue = 5; // 公允价值
optional StringWithUpdateTime fairValueContent = 6; // 公允价值分析文本及更新时间
optional string economicMoatLabel = 7; // 护城河评级,如 Wide、Narrow、None
optional StringWithUpdateTime economicMoatContent = 8; // 护城河分析文本及更新时间
optional string uncertaintyLabel = 9; // 不确定性评级,如 Low、Medium、High、Very High、Extreme
optional StringWithUpdateTime uncertaintyContent = 10; // 不确定性分析文本及更新时间
optional string financialHealthLabel = 11; // 财务健康评级
optional StringWithUpdateTime financialHealthContent = 12; // 财务健康分析文本及更新时间
repeated string analystReportByLine = 13; // 分析师署名列表,如 ["William Kerwin, CFA"]
optional int64 analystReportUpdateTime = 14; // 分析师报告更新时间戳(秒)
optional string analystReportUpdateTimeStr = 15; // 分析师报告更新时间字符串,格式 YYYY-MM-DD,对应市场时区
repeated StringWithUpdateTime bullSay = 16; // 多方观点列表
repeated StringWithUpdateTime bearSay = 17; // 空方观点列表
optional string capitalAllocationLabel = 18; // 资本配置评级
optional StringWithUpdateTime capitalAllocationContent = 19; // 资本配置分析文本及更新时间
optional StringWithUpdateTime analystNoteTitle = 20; // 分析师观点标题及更新时间
optional StringWithUpdateTime analystNoteContent = 21; // 分析师观点内容文本及更新时间
optional StringWithUpdateTime investmentThesisContent = 22; // 投资论点文本及更新时间
optional StringWithUpdateTime fundamentalsContent = 23; // 基本面报告文本及更新时间
optional StringWithUpdateTime valuationContent = 24; // 估值报告文本及更新时间
optional string pdfUrl = 25; // PDF 报告下载链接
}
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
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
- 接口调用结果,结构参见 RetType
- 晨星评级类型参见 MorningstarRatingType
- 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_HK_Security)
.SetCode("00700")
.Build();
QotGetResearchMorningstarReport.C2S c2s = QotGetResearchMorningstarReport.C2S.CreateBuilder()
.SetSecurity(sec)
.Build();
QotGetResearchMorningstarReport.Request req = QotGetResearchMorningstarReport.Request.CreateBuilder().SetC2S(c2s).Build();
uint seqNo = qot.GetResearchMorningstarReport(req);
Console.Write("Send QotGetResearchMorningstarReport: {0}\n", seqNo);
}
public void OnDisconnect(FTAPI_Conn client, long errCode)
{
Console.Write("Qot onDisConnect: {0}\n", errCode);
}
public void OnReply_GetResearchMorningstarReport(FTAPI_Conn client, uint nSerialNo, QotGetResearchMorningstarReport.Response rsp)
{
Console.Write("Reply: QotGetResearchMorningstarReport: {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
- Output
sent seqNo=3
retType: 0
retMsg: ""
errCode: 0
s2c {
ratingType: MorningstarRatingType_Qualitative
starRating: 4
starUpdateTime: 1778257800
starUpdateTimeStr: "2026-05-09"
fairValue: 800
fairValueContent {
context: "我们对腾讯控股的每股公平价值估计为800港元。我们的估值中约85%来自于腾讯的核心业务,而剩余的20%来自其投资。我们对核心业务的估值意味着2025年的市盈率为30倍。我们使用加权平均资本成本(WACC)为8.3%来折现公司的自由现金流。我们预计该公司将在五年内实现10%的收入年复合增长率(CAGR)。由于利润率扩大,我们预测腾讯五年内的每股收益(EPS)复合年增长率为14%。\n\n腾讯是一家拥有多重增长驱动因素的企业。我们预计增值服务收入将以8%的五年复合年增长率增长,这主要得益于新游戏的推出以及现有游戏的内容更新。我们预计广告收入将以14%的五年复合年增长率增...
updateTime: 1755138060
updateTimeStr: "2025-08-14"
}
economicMoatLabel: "宽"
economicMoatContent {
context: "腾讯的宽护城河主要基于其庞大用户群的网络效应。此外,腾讯还拥有无形资产、成本优势和转换成本等次要护城河来源。鉴于腾讯通过游戏、广告、金融科技和其他渠道已经证明了其利用庞大的用户网络实现货币化的能力,我们认为在未来20年内,腾讯的业务更有可能产生超额投资回报。\n\n腾讯拥有中国领先的通讯应用微信。与其他地区的通讯应用不同,微信是一个日常生活和工作的平台。通过应用内功能,用户可以玩游戏、阅读新闻、进行搜索、观看视频、听音乐以及购物。它本质上是Facebook、WhatsApp、Netflix、Spotify和PayPal的集合体,集成在一个移动应用程序中。这种多功能性...
updateTime: 1766457150
updateTimeStr: "2025-12-23"
}
uncertaintyLabel: "较高"
uncertaintyContent {
context: "由于监管风险及其核心业务的竞争强度,我们对腾讯的晨星不确定性评级为高。\n\n在支付领域,2017年出台的强制第三方提供商将客户储备金存入非计息央行账户的规则----以及后来仅给予0.35%利息的让步----表明政策如何实质性地改变了单位经济。\n\n游戏监管同样不可预测:2018年和2021年的许可证审批暂停打乱了发布计划并迫使资源重新分配,而2023年12月发布的旨在遏制视频游戏支出的草案规则(尽管后来被撤回)则突显了该行业的政策负担及长期清晰度的缺乏。\n\n与许多其他上市的中国互联网公司一样,腾讯采用了可变利益实体结构,该结构专门设计用于规避中国在互联网等行...
updateTime: 1766457180
updateTimeStr: "2025-12-23"
}
//...
}
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
int getResearchMorningstarReport(QotGetResearchMorningstarReport.Request req);
void onReply_GetResearchMorningstarReport(FTAPI_Conn client, int nSerialNo, QotGetResearchMorningstarReport.Response rsp);
介绍
获取晨星研究报告
参数
message C2S
{
required Qot_Common.Security security = 1; // 股票
}
message Request
{
required C2S c2s = 1;
}
2
3
4
5
6
7
8
9
- 股票结构参见 Security
- 返回
// 带更新时间的文本内容
message StringWithUpdateTime {
optional string context = 1; // 文本内容
optional int64 updateTime = 2; // 更新时间戳(秒)
optional string updateTimeStr = 3; // 更新时间字符串,格式 YYYY-MM-DD,对应市场时区
}
message S2C
{
optional Qot_Common.MorningstarRatingType ratingType = 1; // 评级类型(详见 Qot_Common.MorningstarRatingType 定义)
optional int32 starRating = 2; // 晨星星级评分,取值 1-5 星
optional int64 starUpdateTime = 3; // 星级更新时间戳(秒)
optional string starUpdateTimeStr = 4; // 星级更新时间字符串,格式 YYYY-MM-DD,对应市场时区
optional double fairValue = 5; // 公允价值
optional StringWithUpdateTime fairValueContent = 6; // 公允价值分析文本及更新时间
optional string economicMoatLabel = 7; // 护城河评级,如 Wide、Narrow、None
optional StringWithUpdateTime economicMoatContent = 8; // 护城河分析文本及更新时间
optional string uncertaintyLabel = 9; // 不确定性评级,如 Low、Medium、High、Very High、Extreme
optional StringWithUpdateTime uncertaintyContent = 10; // 不确定性分析文本及更新时间
optional string financialHealthLabel = 11; // 财务健康评级
optional StringWithUpdateTime financialHealthContent = 12; // 财务健康分析文本及更新时间
repeated string analystReportByLine = 13; // 分析师署名列表,如 ["William Kerwin, CFA"]
optional int64 analystReportUpdateTime = 14; // 分析师报告更新时间戳(秒)
optional string analystReportUpdateTimeStr = 15; // 分析师报告更新时间字符串,格式 YYYY-MM-DD,对应市场时区
repeated StringWithUpdateTime bullSay = 16; // 多方观点列表
repeated StringWithUpdateTime bearSay = 17; // 空方观点列表
optional string capitalAllocationLabel = 18; // 资本配置评级
optional StringWithUpdateTime capitalAllocationContent = 19; // 资本配置分析文本及更新时间
optional StringWithUpdateTime analystNoteTitle = 20; // 分析师观点标题及更新时间
optional StringWithUpdateTime analystNoteContent = 21; // 分析师观点内容文本及更新时间
optional StringWithUpdateTime investmentThesisContent = 22; // 投资论点文本及更新时间
optional StringWithUpdateTime fundamentalsContent = 23; // 基本面报告文本及更新时间
optional StringWithUpdateTime valuationContent = 24; // 估值报告文本及更新时间
optional string pdfUrl = 25; // PDF 报告下载链接
}
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
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
- 接口调用结果,结构参见 RetType
- 晨星评级类型参见 MorningstarRatingType
- 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_HK_Security_VALUE)
.setCode("00700")
.build();
QotGetResearchMorningstarReport.C2S c2s = QotGetResearchMorningstarReport.C2S.newBuilder()
.setSecurity(sec)
.build();
QotGetResearchMorningstarReport.Request req = QotGetResearchMorningstarReport.Request.newBuilder().setC2S(c2s).build();
int seqNo = qot.getResearchMorningstarReport(req);
System.out.printf("Send QotGetResearchMorningstarReport: %d\n", seqNo);
}
@Override
public void onDisconnect(FTAPI_Conn client, long errCode) {
System.out.printf("Qot onDisConnect: %d\n", errCode);
}
@Override
public void onReply_GetResearchMorningstarReport(FTAPI_Conn client, int nSerialNo, QotGetResearchMorningstarReport.Response rsp) {
if (rsp.getRetType() != 0) {
System.out.printf("QotGetResearchMorningstarReport failed: %s\n", rsp.getRetMsg());
}
else {
try {
String json = JsonFormat.printer().print(rsp);
System.out.printf("Receive QotGetResearchMorningstarReport: %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
- Output
Qot onInitConnect: ret=0 desc= connID=7459213538714012239
Send Qot_GetResearchMorningstarReport: 2
Receive Qot_GetResearchMorningstarReport: retType: 0
retMsg: ""
errCode: 0
s2c {
ratingType: MorningstarRatingType_Qualitative
starRating: 4
starUpdateTime: 1778257800
starUpdateTimeStr: "2026-05-09"
fairValue: 800.0
fairValueContent {
context: "我们对腾讯控股的每股公平价值估计为800港元。我们的估值中约85%来自于腾讯的核心业务,而剩余的20%来自其投资。我们对核心业务的估值意味着2025年的市盈率为30倍。我们使用加权平均资本成本(WACC)为8.3%来折现公司的自由现金流。我们预计该公司将在五年内实现10%的收入年复合增长率(CAGR)。由于利润率扩大,我们预测腾讯五年内的每股收益(EPS)复合年增长率为14%。\n\n腾讯是一家拥有多重增长驱动因素的企业。我们预计增值服务收入将以8%的五年复合年增长率增长,这主要得益于新游戏的推出以及现有游戏的内容更新。我们预计广告收入将以14%的五年复合年增长率增...
updateTime: 1755138060
updateTimeStr: "2025-08-14"
}
economicMoatLabel: "宽"
economicMoatContent {
context: "腾讯的宽护城河主要基于其庞大用户群的网络效应。此外,腾讯还拥有无形资产、成本优势和转换成本等次要护城河来源。鉴于腾讯通过游戏、广告、金融科技和其他渠道已经证明了其利用庞大的用户网络实现货币化的能力,我们认为在未来20年内,腾讯的业务更有可能产生超额投资回报。\n\n腾讯拥有中国领先的通讯应用微信。与其他地区的通讯应用不同,微信是一个日常生活和工作的平台。通过应用内功能,用户可以玩游戏、阅读新闻、进行搜索、观看视频、听音乐以及购物。它本质上是Facebook、WhatsApp、Netflix、Spotify和PayPal的集合体,集成在一个移动应用程序中。这种多功能性...
updateTime: 1766457150
updateTimeStr: "2025-12-23"
}
uncertaintyLabel: "较高"
uncertaintyContent {
context: "由于监管风险及其核心业务的竞争强度,我们对腾讯的晨星不确定性评级为高。\n\n在支付领域,2017年出台的强制第三方提供商将客户储备金存入非计息央行账户的规则----以及后来仅给予0.35%利息的让步----表明政策如何实质性地改变了单位经济。\n\n游戏监管同样不可预测:2018年和2021年的许可证审批暂停打乱了发布计划并迫使资源重新分配,而2023年12月发布的旨在遏制视频游戏支出的草案规则(尽管后来被撤回)则突显了该行业的政策负担及长期清晰度的缺乏。\n\n与许多其他上市的中国互联网公司一样,腾讯采用了可变利益实体结构,该结构专门设计用于规避中国在互联网等行...
updateTime: 1766457180
updateTimeStr: "2025-12-23"
}
//...
}
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
Futu::u32_t GetResearchMorningstarReport(const Qot_GetResearchMorningstarReport::Request &stReq);
virtual void OnReply_GetResearchMorningstarReport(Futu::u32_t nSerialNo, const Qot_GetResearchMorningstarReport::Response &stRsp) = 0;
介绍
获取晨星研究报告
参数
message C2S
{
required Qot_Common.Security security = 1; // 股票
}
message Request
{
required C2S c2s = 1;
}
2
3
4
5
6
7
8
9
- 股票结构参见 Security
- 返回
// 带更新时间的文本内容
message StringWithUpdateTime {
optional string context = 1; // 文本内容
optional int64 updateTime = 2; // 更新时间戳(秒)
optional string updateTimeStr = 3; // 更新时间字符串,格式 YYYY-MM-DD,对应市场时区
}
message S2C
{
optional Qot_Common.MorningstarRatingType ratingType = 1; // 评级类型(详见 Qot_Common.MorningstarRatingType 定义)
optional int32 starRating = 2; // 晨星星级评分,取值 1-5 星
optional int64 starUpdateTime = 3; // 星级更新时间戳(秒)
optional string starUpdateTimeStr = 4; // 星级更新时间字符串,格式 YYYY-MM-DD,对应市场时区
optional double fairValue = 5; // 公允价值
optional StringWithUpdateTime fairValueContent = 6; // 公允价值分析文本及更新时间
optional string economicMoatLabel = 7; // 护城河评级,如 Wide、Narrow、None
optional StringWithUpdateTime economicMoatContent = 8; // 护城河分析文本及更新时间
optional string uncertaintyLabel = 9; // 不确定性评级,如 Low、Medium、High、Very High、Extreme
optional StringWithUpdateTime uncertaintyContent = 10; // 不确定性分析文本及更新时间
optional string financialHealthLabel = 11; // 财务健康评级
optional StringWithUpdateTime financialHealthContent = 12; // 财务健康分析文本及更新时间
repeated string analystReportByLine = 13; // 分析师署名列表,如 ["William Kerwin, CFA"]
optional int64 analystReportUpdateTime = 14; // 分析师报告更新时间戳(秒)
optional string analystReportUpdateTimeStr = 15; // 分析师报告更新时间字符串,格式 YYYY-MM-DD,对应市场时区
repeated StringWithUpdateTime bullSay = 16; // 多方观点列表
repeated StringWithUpdateTime bearSay = 17; // 空方观点列表
optional string capitalAllocationLabel = 18; // 资本配置评级
optional StringWithUpdateTime capitalAllocationContent = 19; // 资本配置分析文本及更新时间
optional StringWithUpdateTime analystNoteTitle = 20; // 分析师观点标题及更新时间
optional StringWithUpdateTime analystNoteContent = 21; // 分析师观点内容文本及更新时间
optional StringWithUpdateTime investmentThesisContent = 22; // 投资论点文本及更新时间
optional StringWithUpdateTime fundamentalsContent = 23; // 基本面报告文本及更新时间
optional StringWithUpdateTime valuationContent = 24; // 估值报告文本及更新时间
optional string pdfUrl = 25; // PDF 报告下载链接
}
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
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
- 接口调用结果,结构参见 RetType
- 晨星评级类型参见 MorningstarRatingType
- 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_GetResearchMorningstarReport::Request req;
Qot_GetResearchMorningstarReport::C2S *c2s = req.mutable_c2s();
Qot_Common::Security *sec = c2s->mutable_security();
sec->set_code("00700");
sec->set_market(Qot_Common::QotMarket::QotMarket_HK_Security);
m_pQotApi->GetResearchMorningstarReport(req);
cout << "GetResearchMorningstarReport" << endl;
}
virtual void OnReply_GetResearchMorningstarReport(Futu::u32_t nSerialNo, const Qot_GetResearchMorningstarReport::Response &stRsp){
cout << "OnReply_GetResearchMorningstarReport:" << 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
- Output
onInitConnect: ret=0 desc=Succeed!
Send Qot_GetResearchMorningstarReport seqNo=3
retType: 0
retMsg: ""
errCode: 0
s2c {
ratingType: MorningstarRatingType_Qualitative
starRating: 4
starUpdateTime: 1778257800
starUpdateTimeStr: "2026-05-09"
fairValue: 800
fairValueContent {
context: "我们对腾讯控股的每股公平价值估计为800港元。我们的估值中约85%来自于腾讯的核心业务,而剩余的20%来自其投资。我们对核心业务的估值意味着2025年的市盈率为30倍。我们使用加权平均资本成本(WACC)为8.3%来折现公司的自由现金流。我们预计该公司将在五年内实现10%的收入年复合增长率(CAGR)。由于利润率扩大,我们预测腾讯五年内的每股收益(EPS)复合年增长率为14%。\n\n腾讯是一家拥有多重增长驱动因素的企业。我们预计增值服务收入将以8%的五年复合年增长率增长,这主要得益于新游戏的推出以及现有游戏的内容更新。我们预计广告收入将以14%的五年复合年增长率增...
updateTime: 1755138060
updateTimeStr: "2025-08-14"
}
economicMoatLabel: "宽"
economicMoatContent {
context: "腾讯的宽护城河主要基于其庞大用户群的网络效应。此外,腾讯还拥有无形资产、成本优势和转换成本等次要护城河来源。鉴于腾讯通过游戏、广告、金融科技和其他渠道已经证明了其利用庞大的用户网络实现货币化的能力,我们认为在未来20年内,腾讯的业务更有可能产生超额投资回报。\n\n腾讯拥有中国领先的通讯应用微信。与其他地区的通讯应用不同,微信是一个日常生活和工作的平台。通过应用内功能,用户可以玩游戏、阅读新闻、进行搜索、观看视频、听音乐以及购物。它本质上是Facebook、WhatsApp、Netflix、Spotify和PayPal的集合体,集成在一个移动应用程序中。这种多功能性...
updateTime: 1766457150
updateTimeStr: "2025-12-23"
}
uncertaintyLabel: "较高"
uncertaintyContent {
context: "由于监管风险及其核心业务的竞争强度,我们对腾讯的晨星不确定性评级为高。\n\n在支付领域,2017年出台的强制第三方提供商将客户储备金存入非计息央行账户的规则----以及后来仅给予0.35%利息的让步----表明政策如何实质性地改变了单位经济。\n\n游戏监管同样不可预测:2018年和2021年的许可证审批暂停打乱了发布计划并迫使资源重新分配,而2023年12月发布的旨在遏制视频游戏支出的草案规则(尽管后来被撤回)则突显了该行业的政策负担及长期清晰度的缺乏。\n\n与许多其他上市的中国互联网公司一样,腾讯采用了可变利益实体结构,该结构专门设计用于规避中国在互联网等行...
updateTime: 1766457180
updateTimeStr: "2025-12-23"
}
//...
}
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
GetResearchMorningstarReport(req);
介绍
获取晨星研究报告
参数
message C2S
{
required Qot_Common.Security security = 1; // 股票
}
message Request
{
required C2S c2s = 1;
}
2
3
4
5
6
7
8
9
- 股票结构参见 Security
- 返回
// 带更新时间的文本内容
message StringWithUpdateTime {
optional string context = 1; // 文本内容
optional int64 updateTime = 2; // 更新时间戳(秒)
optional string updateTimeStr = 3; // 更新时间字符串,格式 YYYY-MM-DD,对应市场时区
}
message S2C
{
optional Qot_Common.MorningstarRatingType ratingType = 1; // 评级类型(详见 Qot_Common.MorningstarRatingType 定义)
optional int32 starRating = 2; // 晨星星级评分,取值 1-5 星
optional int64 starUpdateTime = 3; // 星级更新时间戳(秒)
optional string starUpdateTimeStr = 4; // 星级更新时间字符串,格式 YYYY-MM-DD,对应市场时区
optional double fairValue = 5; // 公允价值
optional StringWithUpdateTime fairValueContent = 6; // 公允价值分析文本及更新时间
optional string economicMoatLabel = 7; // 护城河评级,如 Wide、Narrow、None
optional StringWithUpdateTime economicMoatContent = 8; // 护城河分析文本及更新时间
optional string uncertaintyLabel = 9; // 不确定性评级,如 Low、Medium、High、Very High、Extreme
optional StringWithUpdateTime uncertaintyContent = 10; // 不确定性分析文本及更新时间
optional string financialHealthLabel = 11; // 财务健康评级
optional StringWithUpdateTime financialHealthContent = 12; // 财务健康分析文本及更新时间
repeated string analystReportByLine = 13; // 分析师署名列表,如 ["William Kerwin, CFA"]
optional int64 analystReportUpdateTime = 14; // 分析师报告更新时间戳(秒)
optional string analystReportUpdateTimeStr = 15; // 分析师报告更新时间字符串,格式 YYYY-MM-DD,对应市场时区
repeated StringWithUpdateTime bullSay = 16; // 多方观点列表
repeated StringWithUpdateTime bearSay = 17; // 空方观点列表
optional string capitalAllocationLabel = 18; // 资本配置评级
optional StringWithUpdateTime capitalAllocationContent = 19; // 资本配置分析文本及更新时间
optional StringWithUpdateTime analystNoteTitle = 20; // 分析师观点标题及更新时间
optional StringWithUpdateTime analystNoteContent = 21; // 分析师观点内容文本及更新时间
optional StringWithUpdateTime investmentThesisContent = 22; // 投资论点文本及更新时间
optional StringWithUpdateTime fundamentalsContent = 23; // 基本面报告文本及更新时间
optional StringWithUpdateTime valuationContent = 24; // 估值报告文本及更新时间
optional string pdfUrl = 25; // PDF 报告下载链接
}
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
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
- 接口调用结果,结构参见 RetType
- 晨星评级类型参见 MorningstarRatingType
- Example
import ftWebsocket from "futu-api";
import { Common, Qot_Common } from "futu-api/proto";
import beautify from "js-beautify";
function QotGetResearchMorningstarReport(){
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_HK_Security,
code: "00700",
},
},
};
websocket.GetResearchMorningstarReport(req)
.then((res) => {
let { errCode, retMsg, retType,s2c } = res
console.log("GetResearchMorningstarReport: 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
- Output
GetResearchMorningstarReport: errCode 0, retMsg , retType 0
{
"ratingType": "MorningstarRatingType_Qualitative",
"starRating": 4,
"starUpdateTime": "1778257800",
"starUpdateTimeStr": "2026-05-09",
"fairValue": 800,
"fairValueContent": {
"context": "我们对腾讯控股的每股公平价值估计为800港元。我们的估值中约85%来自于腾讯的核心业务,而剩余的20%来自其投资。我们对核心业务的估值意味着2025年的市盈率为30倍。我们使用加权平均资本成本(WACC)为8.3%来折现公司的自由现金流。我们预计该公司将在五年内实现10%的收入年复合增长率(CAGR)。由于利润率扩大,我们预测腾讯五年内的每股收益(EPS)复合年增长率为14%。\n\n腾讯是一家拥有多重增长驱动因素的企业。我们预计增值服务收入将以8%的五年复合年增长率增长,这主要得益于新游戏的推出以及现有游戏的内容更新。我们预计广告收入将以14%的五年复合年增长...
"updateTime": "1755138060",
"updateTimeStr": "2025-08-14"
},
"economicMoatLabel": "宽",
"economicMoatContent": {
"context": "腾讯的宽护城河主要基于其庞大用户群的网络效应。此外,腾讯还拥有无形资产、成本优势和转换成本等次要护城河来源。鉴于腾讯通过游戏、广告、金融科技和其他渠道已经证明了其利用庞大的用户网络实现货币化的能力,我们认为在未来20年内,腾讯的业务更有可能产生超额投资回报。\n\n腾讯拥有中国领先的通讯应用微信。与其他地区的通讯应用不同,微信是一个日常生活和工作的平台。通过应用内功能,用户可以玩游戏、阅读新闻、进行搜索、观看视频、听音乐以及购物。它本质上是Facebook、WhatsApp、Netflix、Spotify和PayPal的集合体,集成在一个移动应用程序中。这种多功...
"updateTime": "1766457150",
"updateTimeStr": "2025-12-23"
},
"uncertaintyLabel": "较高",
"uncertaintyContent": {
"context": "由于监管风险及其核心业务的竞争强度,我们对腾讯的晨星不确定性评级为高。\n\n在支付领域,2017年出台的强制第三方提供商将客户储备金存入非计息央行账户的规则----以及后来仅给予0.35%利息的让步----表明政策如何实质性地改变了单位经济。\n\n游戏监管同样不可预测:2018年和2021年的许可证审批暂停打乱了发布计划并迫使资源重新分配,而2023年12月发布的旨在遏制视频游戏支出的草案规则(尽管后来被撤回)则突显了该行业的政策负担及长期清晰度的缺乏。\n\n与许多其他上市的中国互联网公司一样,腾讯采用了可变利益实体结构,该结构专门设计用于规避中国在互联网...
"updateTime": "1766457180",
"updateTimeStr": "2025-12-23"
},
//...
}
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
接口限制
- 每 30 秒内最多请求 30 次。
- 支持正股及 REIT。
- Python
- Proto
- C#
- Java
- C++
- JavaScript
get_research_morningstar_report(code)
介绍
获取指定股票的晨星研究报告,包含星级评分、公允价值、护城河、不确定性、财务健康、资本配置、多空观点、分析师观点等
参数
参数 类型 说明 code str 股票代码 返回
参数 类型 说明 ret RET_CODE 接口调用结果 data dict 当 ret == RET_OK,返回晨星研究报告数据字典 str 当 ret != RET_OK,返回错误描述 返回字典包含以下字段:
字段 类型 说明 rating_type MorningstarRatingType 评级类型 0=Unknown,1=Quantitative(定量评级,系统模型给出),2=Qualitative(定性评级,分析师人工给出)star_rating int 晨星星级 取值 1~5 星star_update_time int 星级更新时间戳(秒,对应市场时区) star_update_time_str str 星级更新日期 格式 YYYY-MM-DD,对应市场时区fair_value float 公允价值 fair_value_content dict 公允价值分析,见 StringWithUpdateTime 字段表 economic_moat_label str 护城河评级 如 Wide、Narrow、Noneeconomic_moat_content dict 护城河分析,见 StringWithUpdateTime 字段表 uncertainty_label str 不确定性评级 如 Low、Medium、High、Very High、Extremeuncertainty_content dict 不确定性分析,见 StringWithUpdateTime 字段表 financial_health_label str 财务健康评级 financial_health_content dict 财务健康分析,见 StringWithUpdateTime 字段表 analyst_report_by_line list 分析师署名列表 如 ["William Kerwin, CFA"]analyst_report_update_time int 分析师报告更新时间戳(秒,对应市场时区) analyst_report_update_time_str str 分析师报告更新日期 格式 YYYY-MM-DD,对应市场时区bull_say list 多方观点列表,每项见 StringWithUpdateTime 字段表 bear_say list 空方观点列表,每项见 StringWithUpdateTime 字段表 capital_allocation_label str 资本配置评级 capital_allocation_content dict 资本配置分析,见 StringWithUpdateTime 字段表 analyst_note_title dict 分析师观点标题,见 StringWithUpdateTime 字段表 analyst_note_content dict 分析师观点内容,见 StringWithUpdateTime 字段表 investment_thesis_content dict 投资论点,见 StringWithUpdateTime 字段表 fundamentals_content dict 基本面报告,见 StringWithUpdateTime 字段表 valuation_content dict 估值报告,见 StringWithUpdateTime 字段表 pdf_url str PDF 报告下载链接 StringWithUpdateTime 字段(嵌套文本结构):
字段 类型 说明 context str 文本内容 update_time int 更新时间戳(秒,对应市场时区) update_time_str str 更新日期 格式 YYYY-MM-DD,对应市场时区
Example
import json
from moomoo import *
quote_ctx = OpenQuoteContext(host='127.0.0.1', port=11111)
ret, data = quote_ctx.get_research_morningstar_report("HK.00700")
if ret == RET_OK:
print(json.dumps(data, indent=2, ensure_ascii=False))
else:
print('error:', data)
quote_ctx.close()
2
3
4
5
6
7
8
9
- Output
{
"rating_type": 2,
"star_rating": 4,
"star_update_time": 1778257800,
"star_update_time_str": "2026-05-09",
"fair_value": 800.0,
"fair_value_content": {
"context": "我们对腾讯控股的每股公平价值估计为800港元。我们的估值中约85%来自于腾讯的核心业务,而...
"update_time": 1755138060,
"update_time_str": "2025-08-14"
},
"economic_moat_label": "宽",
"economic_moat_content": {
"context": "腾讯的宽护城河主要基于其庞大用户群的网络效应。此外,腾讯还拥有无形资产、成本优势和...
"update_time": 1766457150,
"update_time_str": "2025-12-23"
},
"uncertainty_label": "较高",
"uncertainty_content": {
"context": "由于监管风险及其核心业务的竞争强度,我们对腾讯的晨星不确定性评级为高。\n\n在支付领域,...
"update_time": 1766457180,
"update_time_str": "2025-12-23"
},
//...
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# Qot_GetResearchMorningstarReport.proto
介绍
获取晨星研究报告
参数
message C2S
{
required Qot_Common.Security security = 1; // 股票
}
message Request
{
required C2S c2s = 1;
}
2
3
4
5
6
7
8
9
- 股票结构参见 Security
- MorningstarRatingType:0=Unknown,1=Quantitative,2=Qualitative
- 返回
// 带更新时间的文本内容
message StringWithUpdateTime {
optional string context = 1; // 文本内容
optional int64 updateTime = 2; // 更新时间戳(秒)
optional string updateTimeStr = 3; // 更新时间字符串,格式 YYYY-MM-DD,对应市场时区
}
message S2C
{
optional Qot_Common.MorningstarRatingType ratingType = 1; // 评级类型(详见 Qot_Common.MorningstarRatingType 定义)
optional int32 starRating = 2; // 晨星星级评分,取值 1-5 星
optional int64 starUpdateTime = 3; // 星级更新时间戳(秒)
optional string starUpdateTimeStr = 4; // 星级更新时间字符串,格式 YYYY-MM-DD,对应市场时区
optional double fairValue = 5; // 公允价值
optional StringWithUpdateTime fairValueContent = 6; // 公允价值分析文本及更新时间
optional string economicMoatLabel = 7; // 护城河评级,如 Wide、Narrow、None
optional StringWithUpdateTime economicMoatContent = 8; // 护城河分析文本及更新时间
optional string uncertaintyLabel = 9; // 不确定性评级,如 Low、Medium、High、Very High、Extreme
optional StringWithUpdateTime uncertaintyContent = 10; // 不确定性分析文本及更新时间
optional string financialHealthLabel = 11; // 财务健康评级
optional StringWithUpdateTime financialHealthContent = 12; // 财务健康分析文本及更新时间
repeated string analystReportByLine = 13; // 分析师署名列表,如 ["William Kerwin, CFA"]
optional int64 analystReportUpdateTime = 14; // 分析师报告更新时间戳(秒)
optional string analystReportUpdateTimeStr = 15; // 分析师报告更新时间字符串,格式 YYYY-MM-DD,对应市场时区
repeated StringWithUpdateTime bullSay = 16; // 多方观点列表
repeated StringWithUpdateTime bearSay = 17; // 空方观点列表
optional string capitalAllocationLabel = 18; // 资本配置评级
optional StringWithUpdateTime capitalAllocationContent = 19; // 资本配置分析文本及更新时间
optional StringWithUpdateTime analystNoteTitle = 20; // 分析师观点标题及更新时间
optional StringWithUpdateTime analystNoteContent = 21; // 分析师观点内容文本及更新时间
optional StringWithUpdateTime investmentThesisContent = 22; // 投资论点文本及更新时间
optional StringWithUpdateTime fundamentalsContent = 23; // 基本面报告文本及更新时间
optional StringWithUpdateTime valuationContent = 24; // 估值报告文本及更新时间
optional string pdfUrl = 25; // PDF 报告下载链接
}
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
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
- 接口调用结果,结构参见 RetType
协议 ID
3231
uint GetResearchMorningstarReport(QotGetResearchMorningstarReport.Request req);
virtual void OnReply_GetResearchMorningstarReport(MMAPI_Conn client, uint nSerialNo, QotGetResearchMorningstarReport.Response rsp);
介绍
获取晨星研究报告
参数
message C2S
{
required Qot_Common.Security security = 1; // 股票
}
message Request
{
required C2S c2s = 1;
}
2
3
4
5
6
7
8
9
- 股票结构参见 Security
- 返回
// 带更新时间的文本内容
message StringWithUpdateTime {
optional string context = 1; // 文本内容
optional int64 updateTime = 2; // 更新时间戳(秒)
optional string updateTimeStr = 3; // 更新时间字符串,格式 YYYY-MM-DD,对应市场时区
}
message S2C
{
optional Qot_Common.MorningstarRatingType ratingType = 1; // 评级类型(详见 Qot_Common.MorningstarRatingType 定义)
optional int32 starRating = 2; // 晨星星级评分,取值 1-5 星
optional int64 starUpdateTime = 3; // 星级更新时间戳(秒)
optional string starUpdateTimeStr = 4; // 星级更新时间字符串,格式 YYYY-MM-DD,对应市场时区
optional double fairValue = 5; // 公允价值
optional StringWithUpdateTime fairValueContent = 6; // 公允价值分析文本及更新时间
optional string economicMoatLabel = 7; // 护城河评级,如 Wide、Narrow、None
optional StringWithUpdateTime economicMoatContent = 8; // 护城河分析文本及更新时间
optional string uncertaintyLabel = 9; // 不确定性评级,如 Low、Medium、High、Very High、Extreme
optional StringWithUpdateTime uncertaintyContent = 10; // 不确定性分析文本及更新时间
optional string financialHealthLabel = 11; // 财务健康评级
optional StringWithUpdateTime financialHealthContent = 12; // 财务健康分析文本及更新时间
repeated string analystReportByLine = 13; // 分析师署名列表,如 ["William Kerwin, CFA"]
optional int64 analystReportUpdateTime = 14; // 分析师报告更新时间戳(秒)
optional string analystReportUpdateTimeStr = 15; // 分析师报告更新时间字符串,格式 YYYY-MM-DD,对应市场时区
repeated StringWithUpdateTime bullSay = 16; // 多方观点列表
repeated StringWithUpdateTime bearSay = 17; // 空方观点列表
optional string capitalAllocationLabel = 18; // 资本配置评级
optional StringWithUpdateTime capitalAllocationContent = 19; // 资本配置分析文本及更新时间
optional StringWithUpdateTime analystNoteTitle = 20; // 分析师观点标题及更新时间
optional StringWithUpdateTime analystNoteContent = 21; // 分析师观点内容文本及更新时间
optional StringWithUpdateTime investmentThesisContent = 22; // 投资论点文本及更新时间
optional StringWithUpdateTime fundamentalsContent = 23; // 基本面报告文本及更新时间
optional StringWithUpdateTime valuationContent = 24; // 估值报告文本及更新时间
optional string pdfUrl = 25; // PDF 报告下载链接
}
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
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
- 接口调用结果,结构参见 RetType
- 晨星评级类型参见 MorningstarRatingType
- 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_HK_Security)
.SetCode("00700")
.Build();
QotGetResearchMorningstarReport.C2S c2s = QotGetResearchMorningstarReport.C2S.CreateBuilder()
.SetSecurity(sec)
.Build();
QotGetResearchMorningstarReport.Request req = QotGetResearchMorningstarReport.Request.CreateBuilder().SetC2S(c2s).Build();
uint seqNo = qot.GetResearchMorningstarReport(req);
Console.Write("Send QotGetResearchMorningstarReport: {0}\n", seqNo);
}
public void OnDisconnect(MMAPI_Conn client, long errCode)
{
Console.Write("Qot onDisConnect: {0}\n", errCode);
}
public void OnReply_GetResearchMorningstarReport(MMAPI_Conn client, uint nSerialNo, QotGetResearchMorningstarReport.Response rsp)
{
Console.Write("Reply: QotGetResearchMorningstarReport: {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
- Output
sent seqNo=3
retType: 0
retMsg: ""
errCode: 0
s2c {
ratingType: MorningstarRatingType_Qualitative
starRating: 4
starUpdateTime: 1778257800
starUpdateTimeStr: "2026-05-09"
fairValue: 800
fairValueContent {
context: "我们对腾讯控股的每股公平价值估计为800港元。我们的估值中约85%来自于腾讯的核心业务,而剩余的20%来自其投资。我们对核心业务的估值意味着2025年的市盈率为30倍。我们使用加权平均资本成本(WACC)为8.3%来折现公司的自由现金流。我们预计该公司将在五年内实现10%的收入年复合增长率(CAGR)。由于利润率扩大,我们预测腾讯五年内的每股收益(EPS)复合年增长率为14%。\n\n腾讯是一家拥有多重增长驱动因素的企业。我们预计增值服务收入将以8%的五年复合年增长率增长,这主要得益于新游戏的推出以及现有游戏的内容更新。我们预计广告收入将以14%的五年复合年增长率增...
updateTime: 1755138060
updateTimeStr: "2025-08-14"
}
economicMoatLabel: "宽"
economicMoatContent {
context: "腾讯的宽护城河主要基于其庞大用户群的网络效应。此外,腾讯还拥有无形资产、成本优势和转换成本等次要护城河来源。鉴于腾讯通过游戏、广告、金融科技和其他渠道已经证明了其利用庞大的用户网络实现货币化的能力,我们认为在未来20年内,腾讯的业务更有可能产生超额投资回报。\n\n腾讯拥有中国领先的通讯应用微信。与其他地区的通讯应用不同,微信是一个日常生活和工作的平台。通过应用内功能,用户可以玩游戏、阅读新闻、进行搜索、观看视频、听音乐以及购物。它本质上是Facebook、WhatsApp、Netflix、Spotify和PayPal的集合体,集成在一个移动应用程序中。这种多功能性...
updateTime: 1766457150
updateTimeStr: "2025-12-23"
}
uncertaintyLabel: "较高"
uncertaintyContent {
context: "由于监管风险及其核心业务的竞争强度,我们对腾讯的晨星不确定性评级为高。\n\n在支付领域,2017年出台的强制第三方提供商将客户储备金存入非计息央行账户的规则----以及后来仅给予0.35%利息的让步----表明政策如何实质性地改变了单位经济。\n\n游戏监管同样不可预测:2018年和2021年的许可证审批暂停打乱了发布计划并迫使资源重新分配,而2023年12月发布的旨在遏制视频游戏支出的草案规则(尽管后来被撤回)则突显了该行业的政策负担及长期清晰度的缺乏。\n\n与许多其他上市的中国互联网公司一样,腾讯采用了可变利益实体结构,该结构专门设计用于规避中国在互联网等行...
updateTime: 1766457180
updateTimeStr: "2025-12-23"
}
//...
}
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
int getResearchMorningstarReport(QotGetResearchMorningstarReport.Request req);
void onReply_GetResearchMorningstarReport(MMAPI_Conn client, int nSerialNo, QotGetResearchMorningstarReport.Response rsp);
介绍
获取晨星研究报告
参数
message C2S
{
required Qot_Common.Security security = 1; // 股票
}
message Request
{
required C2S c2s = 1;
}
2
3
4
5
6
7
8
9
- 股票结构参见 Security
- 返回
// 带更新时间的文本内容
message StringWithUpdateTime {
optional string context = 1; // 文本内容
optional int64 updateTime = 2; // 更新时间戳(秒)
optional string updateTimeStr = 3; // 更新时间字符串,格式 YYYY-MM-DD,对应市场时区
}
message S2C
{
optional Qot_Common.MorningstarRatingType ratingType = 1; // 评级类型(详见 Qot_Common.MorningstarRatingType 定义)
optional int32 starRating = 2; // 晨星星级评分,取值 1-5 星
optional int64 starUpdateTime = 3; // 星级更新时间戳(秒)
optional string starUpdateTimeStr = 4; // 星级更新时间字符串,格式 YYYY-MM-DD,对应市场时区
optional double fairValue = 5; // 公允价值
optional StringWithUpdateTime fairValueContent = 6; // 公允价值分析文本及更新时间
optional string economicMoatLabel = 7; // 护城河评级,如 Wide、Narrow、None
optional StringWithUpdateTime economicMoatContent = 8; // 护城河分析文本及更新时间
optional string uncertaintyLabel = 9; // 不确定性评级,如 Low、Medium、High、Very High、Extreme
optional StringWithUpdateTime uncertaintyContent = 10; // 不确定性分析文本及更新时间
optional string financialHealthLabel = 11; // 财务健康评级
optional StringWithUpdateTime financialHealthContent = 12; // 财务健康分析文本及更新时间
repeated string analystReportByLine = 13; // 分析师署名列表,如 ["William Kerwin, CFA"]
optional int64 analystReportUpdateTime = 14; // 分析师报告更新时间戳(秒)
optional string analystReportUpdateTimeStr = 15; // 分析师报告更新时间字符串,格式 YYYY-MM-DD,对应市场时区
repeated StringWithUpdateTime bullSay = 16; // 多方观点列表
repeated StringWithUpdateTime bearSay = 17; // 空方观点列表
optional string capitalAllocationLabel = 18; // 资本配置评级
optional StringWithUpdateTime capitalAllocationContent = 19; // 资本配置分析文本及更新时间
optional StringWithUpdateTime analystNoteTitle = 20; // 分析师观点标题及更新时间
optional StringWithUpdateTime analystNoteContent = 21; // 分析师观点内容文本及更新时间
optional StringWithUpdateTime investmentThesisContent = 22; // 投资论点文本及更新时间
optional StringWithUpdateTime fundamentalsContent = 23; // 基本面报告文本及更新时间
optional StringWithUpdateTime valuationContent = 24; // 估值报告文本及更新时间
optional string pdfUrl = 25; // PDF 报告下载链接
}
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
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
- 接口调用结果,结构参见 RetType
- 晨星评级类型参见 MorningstarRatingType
- 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_HK_Security_VALUE)
.setCode("00700")
.build();
QotGetResearchMorningstarReport.C2S c2s = QotGetResearchMorningstarReport.C2S.newBuilder()
.setSecurity(sec)
.build();
QotGetResearchMorningstarReport.Request req = QotGetResearchMorningstarReport.Request.newBuilder().setC2S(c2s).build();
int seqNo = qot.getResearchMorningstarReport(req);
System.out.printf("Send QotGetResearchMorningstarReport: %d\n", seqNo);
}
@Override
public void onDisconnect(MMAPI_Conn client, long errCode) {
System.out.printf("Qot onDisConnect: %d\n", errCode);
}
@Override
public void onReply_GetResearchMorningstarReport(MMAPI_Conn client, int nSerialNo, QotGetResearchMorningstarReport.Response rsp) {
if (rsp.getRetType() != 0) {
System.out.printf("QotGetResearchMorningstarReport failed: %s\n", rsp.getRetMsg());
}
else {
try {
String json = JsonFormat.printer().print(rsp);
System.out.printf("Receive QotGetResearchMorningstarReport: %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
- Output
Qot onInitConnect: ret=0 desc= connID=7459213538714012239
Send Qot_GetResearchMorningstarReport: 2
Receive Qot_GetResearchMorningstarReport: retType: 0
retMsg: ""
errCode: 0
s2c {
ratingType: MorningstarRatingType_Qualitative
starRating: 4
starUpdateTime: 1778257800
starUpdateTimeStr: "2026-05-09"
fairValue: 800.0
fairValueContent {
context: "我们对腾讯控股的每股公平价值估计为800港元。我们的估值中约85%来自于腾讯的核心业务,而剩余的20%来自其投资。我们对核心业务的估值意味着2025年的市盈率为30倍。我们使用加权平均资本成本(WACC)为8.3%来折现公司的自由现金流。我们预计该公司将在五年内实现10%的收入年复合增长率(CAGR)。由于利润率扩大,我们预测腾讯五年内的每股收益(EPS)复合年增长率为14%。\n\n腾讯是一家拥有多重增长驱动因素的企业。我们预计增值服务收入将以8%的五年复合年增长率增长,这主要得益于新游戏的推出以及现有游戏的内容更新。我们预计广告收入将以14%的五年复合年增长率增...
updateTime: 1755138060
updateTimeStr: "2025-08-14"
}
economicMoatLabel: "宽"
economicMoatContent {
context: "腾讯的宽护城河主要基于其庞大用户群的网络效应。此外,腾讯还拥有无形资产、成本优势和转换成本等次要护城河来源。鉴于腾讯通过游戏、广告、金融科技和其他渠道已经证明了其利用庞大的用户网络实现货币化的能力,我们认为在未来20年内,腾讯的业务更有可能产生超额投资回报。\n\n腾讯拥有中国领先的通讯应用微信。与其他地区的通讯应用不同,微信是一个日常生活和工作的平台。通过应用内功能,用户可以玩游戏、阅读新闻、进行搜索、观看视频、听音乐以及购物。它本质上是Facebook、WhatsApp、Netflix、Spotify和PayPal的集合体,集成在一个移动应用程序中。这种多功能性...
updateTime: 1766457150
updateTimeStr: "2025-12-23"
}
uncertaintyLabel: "较高"
uncertaintyContent {
context: "由于监管风险及其核心业务的竞争强度,我们对腾讯的晨星不确定性评级为高。\n\n在支付领域,2017年出台的强制第三方提供商将客户储备金存入非计息央行账户的规则----以及后来仅给予0.35%利息的让步----表明政策如何实质性地改变了单位经济。\n\n游戏监管同样不可预测:2018年和2021年的许可证审批暂停打乱了发布计划并迫使资源重新分配,而2023年12月发布的旨在遏制视频游戏支出的草案规则(尽管后来被撤回)则突显了该行业的政策负担及长期清晰度的缺乏。\n\n与许多其他上市的中国互联网公司一样,腾讯采用了可变利益实体结构,该结构专门设计用于规避中国在互联网等行...
updateTime: 1766457180
updateTimeStr: "2025-12-23"
}
//...
}
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
moomoo::u32_t GetResearchMorningstarReport(const Qot_GetResearchMorningstarReport::Request &stReq);
virtual void OnReply_GetResearchMorningstarReport(moomoo::u32_t nSerialNo, const Qot_GetResearchMorningstarReport::Response &stRsp) = 0;
介绍
获取晨星研究报告
参数
message C2S
{
required Qot_Common.Security security = 1; // 股票
}
message Request
{
required C2S c2s = 1;
}
2
3
4
5
6
7
8
9
- 股票结构参见 Security
- 返回
// 带更新时间的文本内容
message StringWithUpdateTime {
optional string context = 1; // 文本内容
optional int64 updateTime = 2; // 更新时间戳(秒)
optional string updateTimeStr = 3; // 更新时间字符串,格式 YYYY-MM-DD,对应市场时区
}
message S2C
{
optional Qot_Common.MorningstarRatingType ratingType = 1; // 评级类型(详见 Qot_Common.MorningstarRatingType 定义)
optional int32 starRating = 2; // 晨星星级评分,取值 1-5 星
optional int64 starUpdateTime = 3; // 星级更新时间戳(秒)
optional string starUpdateTimeStr = 4; // 星级更新时间字符串,格式 YYYY-MM-DD,对应市场时区
optional double fairValue = 5; // 公允价值
optional StringWithUpdateTime fairValueContent = 6; // 公允价值分析文本及更新时间
optional string economicMoatLabel = 7; // 护城河评级,如 Wide、Narrow、None
optional StringWithUpdateTime economicMoatContent = 8; // 护城河分析文本及更新时间
optional string uncertaintyLabel = 9; // 不确定性评级,如 Low、Medium、High、Very High、Extreme
optional StringWithUpdateTime uncertaintyContent = 10; // 不确定性分析文本及更新时间
optional string financialHealthLabel = 11; // 财务健康评级
optional StringWithUpdateTime financialHealthContent = 12; // 财务健康分析文本及更新时间
repeated string analystReportByLine = 13; // 分析师署名列表,如 ["William Kerwin, CFA"]
optional int64 analystReportUpdateTime = 14; // 分析师报告更新时间戳(秒)
optional string analystReportUpdateTimeStr = 15; // 分析师报告更新时间字符串,格式 YYYY-MM-DD,对应市场时区
repeated StringWithUpdateTime bullSay = 16; // 多方观点列表
repeated StringWithUpdateTime bearSay = 17; // 空方观点列表
optional string capitalAllocationLabel = 18; // 资本配置评级
optional StringWithUpdateTime capitalAllocationContent = 19; // 资本配置分析文本及更新时间
optional StringWithUpdateTime analystNoteTitle = 20; // 分析师观点标题及更新时间
optional StringWithUpdateTime analystNoteContent = 21; // 分析师观点内容文本及更新时间
optional StringWithUpdateTime investmentThesisContent = 22; // 投资论点文本及更新时间
optional StringWithUpdateTime fundamentalsContent = 23; // 基本面报告文本及更新时间
optional StringWithUpdateTime valuationContent = 24; // 估值报告文本及更新时间
optional string pdfUrl = 25; // PDF 报告下载链接
}
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
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
- 接口调用结果,结构参见 RetType
- 晨星评级类型参见 MorningstarRatingType
- 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_GetResearchMorningstarReport::Request req;
Qot_GetResearchMorningstarReport::C2S *c2s = req.mutable_c2s();
Qot_Common::Security *sec = c2s->mutable_security();
sec->set_code("00700");
sec->set_market(Qot_Common::QotMarket::QotMarket_HK_Security);
m_pQotApi->GetResearchMorningstarReport(req);
cout << "GetResearchMorningstarReport" << endl;
}
virtual void OnReply_GetResearchMorningstarReport(moomoo::u32_t nSerialNo, const Qot_GetResearchMorningstarReport::Response &stRsp){
cout << "OnReply_GetResearchMorningstarReport:" << 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
- Output
onInitConnect: ret=0 desc=Succeed!
Send Qot_GetResearchMorningstarReport seqNo=3
retType: 0
retMsg: ""
errCode: 0
s2c {
ratingType: MorningstarRatingType_Qualitative
starRating: 4
starUpdateTime: 1778257800
starUpdateTimeStr: "2026-05-09"
fairValue: 800
fairValueContent {
context: "我们对腾讯控股的每股公平价值估计为800港元。我们的估值中约85%来自于腾讯的核心业务,而剩余的20%来自其投资。我们对核心业务的估值意味着2025年的市盈率为30倍。我们使用加权平均资本成本(WACC)为8.3%来折现公司的自由现金流。我们预计该公司将在五年内实现10%的收入年复合增长率(CAGR)。由于利润率扩大,我们预测腾讯五年内的每股收益(EPS)复合年增长率为14%。\n\n腾讯是一家拥有多重增长驱动因素的企业。我们预计增值服务收入将以8%的五年复合年增长率增长,这主要得益于新游戏的推出以及现有游戏的内容更新。我们预计广告收入将以14%的五年复合年增长率增...
updateTime: 1755138060
updateTimeStr: "2025-08-14"
}
economicMoatLabel: "宽"
economicMoatContent {
context: "腾讯的宽护城河主要基于其庞大用户群的网络效应。此外,腾讯还拥有无形资产、成本优势和转换成本等次要护城河来源。鉴于腾讯通过游戏、广告、金融科技和其他渠道已经证明了其利用庞大的用户网络实现货币化的能力,我们认为在未来20年内,腾讯的业务更有可能产生超额投资回报。\n\n腾讯拥有中国领先的通讯应用微信。与其他地区的通讯应用不同,微信是一个日常生活和工作的平台。通过应用内功能,用户可以玩游戏、阅读新闻、进行搜索、观看视频、听音乐以及购物。它本质上是Facebook、WhatsApp、Netflix、Spotify和PayPal的集合体,集成在一个移动应用程序中。这种多功能性...
updateTime: 1766457150
updateTimeStr: "2025-12-23"
}
uncertaintyLabel: "较高"
uncertaintyContent {
context: "由于监管风险及其核心业务的竞争强度,我们对腾讯的晨星不确定性评级为高。\n\n在支付领域,2017年出台的强制第三方提供商将客户储备金存入非计息央行账户的规则----以及后来仅给予0.35%利息的让步----表明政策如何实质性地改变了单位经济。\n\n游戏监管同样不可预测:2018年和2021年的许可证审批暂停打乱了发布计划并迫使资源重新分配,而2023年12月发布的旨在遏制视频游戏支出的草案规则(尽管后来被撤回)则突显了该行业的政策负担及长期清晰度的缺乏。\n\n与许多其他上市的中国互联网公司一样,腾讯采用了可变利益实体结构,该结构专门设计用于规避中国在互联网等行...
updateTime: 1766457180
updateTimeStr: "2025-12-23"
}
//...
}
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
GetResearchMorningstarReport(req);
介绍
获取晨星研究报告
参数
message C2S
{
required Qot_Common.Security security = 1; // 股票
}
message Request
{
required C2S c2s = 1;
}
2
3
4
5
6
7
8
9
- 股票结构参见 Security
- 返回
// 带更新时间的文本内容
message StringWithUpdateTime {
optional string context = 1; // 文本内容
optional int64 updateTime = 2; // 更新时间戳(秒)
optional string updateTimeStr = 3; // 更新时间字符串,格式 YYYY-MM-DD,对应市场时区
}
message S2C
{
optional Qot_Common.MorningstarRatingType ratingType = 1; // 评级类型(详见 Qot_Common.MorningstarRatingType 定义)
optional int32 starRating = 2; // 晨星星级评分,取值 1-5 星
optional int64 starUpdateTime = 3; // 星级更新时间戳(秒)
optional string starUpdateTimeStr = 4; // 星级更新时间字符串,格式 YYYY-MM-DD,对应市场时区
optional double fairValue = 5; // 公允价值
optional StringWithUpdateTime fairValueContent = 6; // 公允价值分析文本及更新时间
optional string economicMoatLabel = 7; // 护城河评级,如 Wide、Narrow、None
optional StringWithUpdateTime economicMoatContent = 8; // 护城河分析文本及更新时间
optional string uncertaintyLabel = 9; // 不确定性评级,如 Low、Medium、High、Very High、Extreme
optional StringWithUpdateTime uncertaintyContent = 10; // 不确定性分析文本及更新时间
optional string financialHealthLabel = 11; // 财务健康评级
optional StringWithUpdateTime financialHealthContent = 12; // 财务健康分析文本及更新时间
repeated string analystReportByLine = 13; // 分析师署名列表,如 ["William Kerwin, CFA"]
optional int64 analystReportUpdateTime = 14; // 分析师报告更新时间戳(秒)
optional string analystReportUpdateTimeStr = 15; // 分析师报告更新时间字符串,格式 YYYY-MM-DD,对应市场时区
repeated StringWithUpdateTime bullSay = 16; // 多方观点列表
repeated StringWithUpdateTime bearSay = 17; // 空方观点列表
optional string capitalAllocationLabel = 18; // 资本配置评级
optional StringWithUpdateTime capitalAllocationContent = 19; // 资本配置分析文本及更新时间
optional StringWithUpdateTime analystNoteTitle = 20; // 分析师观点标题及更新时间
optional StringWithUpdateTime analystNoteContent = 21; // 分析师观点内容文本及更新时间
optional StringWithUpdateTime investmentThesisContent = 22; // 投资论点文本及更新时间
optional StringWithUpdateTime fundamentalsContent = 23; // 基本面报告文本及更新时间
optional StringWithUpdateTime valuationContent = 24; // 估值报告文本及更新时间
optional string pdfUrl = 25; // PDF 报告下载链接
}
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
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
- 接口调用结果,结构参见 RetType
- 晨星评级类型参见 MorningstarRatingType
- Example
import mmWebsocket from "moomoo-api";
import { Common, Qot_Common } from "moomoo-api/proto";
import beautify from "js-beautify";
function QotGetResearchMorningstarReport(){
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_HK_Security,
code: "00700",
},
},
};
websocket.GetResearchMorningstarReport(req)
.then((res) => {
let { errCode, retMsg, retType,s2c } = res
console.log("GetResearchMorningstarReport: 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
- Output
GetResearchMorningstarReport: errCode 0, retMsg , retType 0
{
"ratingType": "MorningstarRatingType_Qualitative",
"starRating": 4,
"starUpdateTime": "1778257800",
"starUpdateTimeStr": "2026-05-09",
"fairValue": 800,
"fairValueContent": {
"context": "我们对腾讯控股的每股公平价值估计为800港元。我们的估值中约85%来自于腾讯的核心业务,而剩余的20%来自其投资。我们对核心业务的估值意味着2025年的市盈率为30倍。我们使用加权平均资本成本(WACC)为8.3%来折现公司的自由现金流。我们预计该公司将在五年内实现10%的收入年复合增长率(CAGR)。由于利润率扩大,我们预测腾讯五年内的每股收益(EPS)复合年增长率为14%。\n\n腾讯是一家拥有多重增长驱动因素的企业。我们预计增值服务收入将以8%的五年复合年增长率增长,这主要得益于新游戏的推出以及现有游戏的内容更新。我们预计广告收入将以14%的五年复合年增长...
"updateTime": "1755138060",
"updateTimeStr": "2025-08-14"
},
"economicMoatLabel": "宽",
"economicMoatContent": {
"context": "腾讯的宽护城河主要基于其庞大用户群的网络效应。此外,腾讯还拥有无形资产、成本优势和转换成本等次要护城河来源。鉴于腾讯通过游戏、广告、金融科技和其他渠道已经证明了其利用庞大的用户网络实现货币化的能力,我们认为在未来20年内,腾讯的业务更有可能产生超额投资回报。\n\n腾讯拥有中国领先的通讯应用微信。与其他地区的通讯应用不同,微信是一个日常生活和工作的平台。通过应用内功能,用户可以玩游戏、阅读新闻、进行搜索、观看视频、听音乐以及购物。它本质上是Facebook、WhatsApp、Netflix、Spotify和PayPal的集合体,集成在一个移动应用程序中。这种多功...
"updateTime": "1766457150",
"updateTimeStr": "2025-12-23"
},
"uncertaintyLabel": "较高",
"uncertaintyContent": {
"context": "由于监管风险及其核心业务的竞争强度,我们对腾讯的晨星不确定性评级为高。\n\n在支付领域,2017年出台的强制第三方提供商将客户储备金存入非计息央行账户的规则----以及后来仅给予0.35%利息的让步----表明政策如何实质性地改变了单位经济。\n\n游戏监管同样不可预测:2018年和2021年的许可证审批暂停打乱了发布计划并迫使资源重新分配,而2023年12月发布的旨在遏制视频游戏支出的草案规则(尽管后来被撤回)则突显了该行业的政策负担及长期清晰度的缺乏。\n\n与许多其他上市的中国互联网公司一样,腾讯采用了可变利益实体结构,该结构专门设计用于规避中国在互联网...
"updateTime": "1766457180",
"updateTimeStr": "2025-12-23"
},
//...
}
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
接口限制
- 每 30 秒内最多请求 30 次。
- 支持正股及 REIT。
← 获取评级汇总 获取个股/指数估值详情 →