news 2026/11/4 2:25:20

给AI接股票数据源,第一轮验收什么?用悟道MCP跑一份检查报告

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
给AI接股票数据源,第一轮验收什么?用悟道MCP跑一份检查报告

我现在给股票Agent接数据,第一件事不是让它写复盘,而是让它证明自己刚才拿到了什么。

“调用成功”很容易让人放下戒心。但连得上和用得对,中间还隔着日期、字段、单位和缺失处理。这次我用悟道MCP做了一轮小样本检查,把能确认的和需要补查的都写进同一份报告。

我参与悟道数据的维护。本文是2026年10月26日的实际查询记录,不是对其他数据源的跑分,也不是全量验收结论。执行和文件整理在Codex中完成;WorkBuddy等具备对应MCP与文件能力的Agent也可以复用这套检查顺序。

先把这次的范围钉住

我选了三个公开演示代码:000001、600519、300750,不读取私人自选股。行情固定查2026-10-23截止的两根不复权日线,财务目标期为2026-09-30。固定日期的好处是:下一次再跑,可以知道输入究竟有没有变。

本次只调用了交易日、日线、财务摘要和公告查询。不写入自选,不触发交易,也没有用故意打满额度来“测试稳定性”。接入地址仍是https://stock.quicktiny.cn/api/mcp,具体客户端配置以悟道数据接入说明为准。

六项检查,三项通过,三项继续核对

项目这次实际看到什么本轮结论
交易日2026-10-23返回交易日为true通过:仅这一日期
批量覆盖日线请求3个代码,成功3个,代码集合对应通过:仅这次样本
返回日期3个最新行日期均为20261023,每股两根通过:没有用别的日期顶替
金额单位日线工具约定amount为元,报告明确转换为亿元;尚未独立对账待核对:声明单位不等于验证数值
财务期别和字段两股目标期返回但营收/利润缺失,一股最新仍为半年报待核对:不通过完整三季报要求
空公告指定代码、区间和关键词的站内查询返回0条待核对:不能推出公司没公告

这里“通过”只表示这个输入下检查成立。不是说接口所有股票、所有日期都正确;同样,“待核对”也不代表服务断了,而是当前证据还不够支持后续使用。

先看一个很容易被忽略的返回

财务目标都是2026-09-30,但这次返回并不整齐:

样例最新返回期末本次营收/利润字段我怎么处理
平安银行0000012026-09-30缺失保留期别,列入待补
宁德时代3007502026-09-30缺失不填0,不计算同比
贵州茅台6005192026-06-30有返回,但期别不同不当作三季报

服务返回了success:true,并不意味着我的业务要求已经满足。尤其不能把“有一期财报”理解为“目标期的关键字段齐了”。响应里没有警告,也不能替代调用方自己的检查。

这次对300750用“第三季度报告”关键词、2026-10-01至26日区间查站内公告,返回0条。我只记录这组条件下的空结果,不把它改写成“未披露三季报”。如果要核对披露事实,下一步另查公告原文与正式披露入口;本篇没有把这一步说成已经完成。

我留下的不是一句“测试成功”,而是一份输入文件

下面这个最小快照是本次结果的公开字段摘录。amountUnit来自工具字段约定,是调用方显式记录的单位,不是凭数字大小猜出来的。

{"queriedOn":"2026-10-26","requestedDate":"2026-10-23","calendar":{"date":"2026-10-23","isTradingDay":true},"requestedCodes":["000001","600519","300750"],"kline":{"successCount":3,"adjust":"none","amountUnit":"CNY","independentlyReconciled":false,"rows":[{"code":"000001","date":"20261023","close":11.2,"amount":1628277170},{"code":"600519","date":"20261023","close":1335,"amount":7677216283},{"code":"300750","date":"20261023","close":237.6,"amount":25396241824.4}]}}

这个JSON是调用后的最小摘录,不是服务端原样响应。财务摘要与公告结果另外保留,避免把两种日期混在一行里:行情日期是一种日期,报告期末和公告日期又是另外两种。

最小验收器怎么写

我把最容易自动检查的三项放进一个Node脚本。保存为check.mjs,把上面的JSON存为sample.json,执行node check.mjs sample.json。它不联网、不读取密钥,也不宣称替你验完所有数据。

importfsfrom'node:fs';exportfunctioncheck(s){constiso=x=>{if(typeofx!=='string')returnnull;constt=/^\d{8}$/.test(x)?`${x.slice(0,4)}-${x.slice(4,6)}-${x.slice(6,8)}`:x;return/^\d{4}-\d{2}-\d{2}$/.test(t)?t:null;};constwanted=s.requestedCodes;constrows=s.kline.rows;constreturned=newSet(rows.map(r=>r.code));constuniqueWanted=newSet(wanted).size===wanted.length;constcoverage=wanted.length>0&&uniqueWanted&&rows.length===wanted.length&&returned.size===rows.length&&wanted.every(code=>returned.has(code))&&s.kline.successCount===wanted.length;constrequestedDate=iso(s.requestedDate);return[{item:'交易日',pass:requestedDate!==null&&iso(s.calendar.date)===requestedDate&&s.calendar.isTradingDay===true},{item:'代码覆盖',pass:coverage},{item:'返回日期',pass:coverage&&requestedDate!==null&&rows.every(r=>iso(r.date)===requestedDate)}];}if(process.argv[1]?.endsWith('check.mjs')){consts=JSON.parse(fs.readFileSync(process.argv[2],'utf8'));console.log(JSON.stringify(check(s),null,2));}

我另外用离线构造样本检查了漏一只代码、重复代码、空数组、返回日期变化、非交易日等情况。构造样本是验收器测试,不是线上服务曾经出过这些故障的证据。

金额、财务字段与空公告暂时留给人工检查:一方面要回原文对账,另一方面要明确后续任务究竟需要哪些字段。银行和制造业的研究要求也不该被一个通用“成功”标签抹平。

最后才给Agent完整任务

用悟道MCP查一组我明确指定的公开演示代码,先不写市场观点。 固定请求日期,分别保存请求参数、实际日期、代码、字段和单位。 把调用成功与业务完整分开,输出PASS、REVIEW、FAIL及原因。 目标期不符或字段缺失,不取上一期替代,不把缺失改成0。 空结果只描述查询条件与查询范围,不扩大成不存在该事实。 另存需要核对的原文入口,没读过就标待核对。 生成sample.json、check-result.json与一张可读的验收表。

换其他股票数据源,我仍然会问同样的问题。悟道MCP是这次实际使用的例子,不是“接了MCP就天然正确”的理由。

第一轮能把这些事说清楚,我才愿意让Agent继续做复盘、财报整理或定时任务。否则自动化越顺,一份日期不对的报告也可能每天准时送到。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/4 2:20:16

HsMod 炉石插件上手:50 余项功能,皮肤镀金到战棋 MMR 一次配好

HsMod 炉石插件上手:50 余项功能,皮肤镀金到战棋 MMR 一次配好 【免费下载链接】HsMod Hearthstone Modification Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod HsMod 是一个基于 BepInEx 的炉石传说本地增强插件&a…

作者头像 李华
网站建设 2026/11/4 2:20:02

Binary Neural Networks for Large Language Model: A Survey

### 摘要 大语言模型(LLMs)在自然语言处理(NLP)领域有着广泛应用,如 GPT-4 和 Llama。然而,随着模型参数规模呈指数级增长,大语言模型带来了巨大的资源开销。低比特量化作为一项关键技术,通过减小模型参数、激活值和梯度的比特宽度,降低了内存使用和计算需求。以往针…

作者头像 李华