AI投研(一):面向投研智能体的CJPY数据服务

  • 来源:长江证券
  • 发布时间:2026/08/05
  • 浏览次数:15
  • 举报
相关深度报告REPORTS

AI投研(一):面向投研智能体的CJPY数据服务.pdf

投研数据服务的智能化升级正成为金融工程领域的重要方向。长江证券金融工程团队基于天软TS-OPI开发的CJPY数据服务工具,在原有Python接口基础上完成MCP升级,实现了同一数据底座面向程序化研究与智能体交互的双入口架构。核心定位与升级内容CJPY是轻量级投研数据服务工具,核心作用是降低基础数据准备成本,不直接生成投资结论,也不替代专业回测和交易系统。当前0.5.2版本同时提供PythonAPI和MCPServer:Python接口保持原有函数化、DataFrame化的使用方式;MCP则将同一批数据能力注册为智能体可发现、可调用的结构化工具,并补充17个只读数据工具、API文档资源和6个投研...

CJPY投研数据服务升级背景

数据是投研工作的共同基础。一项研究从提出问题走向形成结论,通常需要先确定研究对象和时间范围,再获取行情、财务、股东、基金、因子或宏观数据,并在统一口径下完成计算和比较。数据入口是否稳定、字段含义是否清晰、历史时点是否可验证,直接影响后续分析的效率和可靠性。长江金工基于天软TS-OPI数据服务开发CJPY,将高频使用的数据调用动作封装为标准Python函数。经过持续升级,当前版本在原有Python接口基础上增加MCP Server,使同一批数据能力既可以进入程序化研究环境,也可以由支持MCP的智能体直接调用。

从程序化接口扩展至智能体工具

首次发布时,CJPY主要解决Python环境中的数据调用问题。通过函数传入证券代码、日期、表名或因子名称后,接口返回列表或DataFrame,可继续在脚本和Notebook中处理。随着大模型逐步进入研究辅助场景,仅有Python函数还不足以让智能体稳定使用专业数据。智能体需要知道当前有哪些数据表、正式字段和因子,如何填写参数,以及返回结果是否完整。本次升级增加MCP Server,将Python查询能力注册为结构化工具,并补充文档资源、任务模板和统一结果状态,使数据接口可以被支持MCP的客户端发现和调用。

这种升级并未改变CJPY的数据来源和业务口径。MCP工具复用现有Python API,底层仍由CJPY完成token认证、Wind与天软代码转换、日期处理、请求发送和DataFrame解析。Python与MCP因此不是两套独立系统,而是同一数据底座面向程序和智能体的两个入口。

当前版本主要组成

当前CJPY版本为0.5.2。查询侧已经形成证券范围、交易日、行情、99张结构化数据表、因子和40张宏观表等主要能力;Python侧保留实时订阅和简易组合回测;MCP侧提供17个只读工具、两类API文档资源和6个投研任务模板。版本升级同时强化了数据发现和结果控制,查询完成后调用结果会区分完整结果、空数据、规模超限和预览样例四类状态,避免把被截断的数据误当作完整样本。

数据覆盖范围与结构

CJPY目前支持99张结构化数据表,覆盖上市公司、基金、债券与可转债、指数、期货、期权、汇率和宏观数据。各类数据保留自身的业务字段和时间规则,并分别标注变动日、截止日、公布日、开始适用日等关键日期,以及日度、季度或不定期等更新频率。这些设计有助于区分报告期、披露时点和事件发生时点,避免在历史研究中将尚未公开的数据提前使用。

上市公司数据覆盖静态属性、定期报告和不定期事件三类时间结构。基金数据既包括产品资料、基金经理和费率,也包括净值、多周期收益率、风险收益、份额变动、申购赎回、持股持债和资产配置。债券与可转债、指数和衍生品数据进一步拓展了研究边界,统一的数据入口保留了不同资产的代码类型、日期字段、更新频率和历史可得区间。

宏观数据体系

宏观数据是当前版本新增的重要组成。CJPY目前提供40张宏观数据表,形成约2500项指标及字段定义,并配套统计频率、计量单位、数据来源和发布时间等信息。现有宏观数据覆盖经济增长、生产、投资、消费、价格、收入、房地产、农业与建筑业等实体经济主题,也覆盖社会融资规模、存贷款利率、央行货币政策工具、货币当局资产负债表、存款性公司概览、金融机构信贷收支、官方储备资产和投资者资金余额等货币金融主题。

宏观数据同时保留"简表"和历史范围更长、分类更细的完整表。简表通常包含公布日和公布时间,适合跟踪最新数据发布;完整表更适合历史分析和分项拆解。同名或近似指标可能分别对应简表与完整表、总量与增速或不同统计范围,因此需要结合所属数据表和口径说明加以区分。

Python接口与MCP工具的能力分工

Python接口以明确的函数签名接收参数,并将行情、表格、因子和宏观结果转换为DataFrame。返回结果可继续使用pandas进行清洗、拼接、分组和统计,也可以保存为本地文件、数据库或研究中间表。对于全市场、多日期和多指标任务,Python更适合控制分批策略、失败重试和计算过程。

MCP Server通过stdio由支持MCP的客户端启动。当前17个工具可以分为接口文档、数据发现、证券范围、行情、表格、因子和宏观数据七类。工具输入和输出Schema由类型注解生成,所有工具均标记为只读、非破坏性和幂等操作。MCP结果按照status、data、metadata和hints统一组织,默认complete模式只接受完整结果;若记录数超过max_rows,工具返回too_large和空data,提示缩小范围或转用Python。

两种接口的适用场景与组合使用

交互式查询、公司快照和宏观跟踪适合通过MCP完成;大规模因子提取、复杂计算和回测适合使用Python。实际研究通常不是在Python与MCP之间二选一:数据口径尚不明确时,可以先用MCP完成交互式探索;确定表名、字段和查询范围后,再把参数固化为Python脚本。对于一次性的公司或宏观快照,也可以直接由MCP完成查询和整理,并把结构化结果作为报告底稿保存。

这种组合方式把智能体放在"理解任务和组织工具"的位置,把Python保留在"承载批量数据和确定性计算"的位置。两者各自处理更擅长的环节,有助于在便利性和可复现性之间取得平衡。

应用案例:公司基础研究快照

公司基础研究通常需要在同一日期下整理证券基本信息、估值、盈利能力和成长指标。研究任务首先明确证券代码和截面日期;随后通过list_tables和list_table_fields确认公司基本信息及财务字段,再使用list_factors查找估值与盈利因子,最后由get_table_data和get_factor_data返回数据。该流程适合通过MCP完成,原因在于数据量有限但字段选择较多。智能体可以根据研究维度组织工具调用,并在结果中同时保留数据日期、因子名称和缺失值。

应用案例:多因子提取与分组回测

多因子研究的数据量远高于公司快照。以月度调仓为例,研究首先生成月末交易日,在每个日期获取当时股票池,再提取PB、ROE等指标。数据清理后,可以在每个截面分别计算因子排名、合成分值和分组标签,并形成等权持仓明细。这一任务更适合Python:循环和分批策略可以显式控制,因子结果可以直接进入pandas计算,持仓明细则传入Backtest.run()得到组合净值。MCP可以在研究开始阶段辅助发现因子名称、核对口径和生成代码,但不宜承载全市场、多日期的完整数据。

应用案例:宏观指标跟踪

宏观指标跟踪的难点通常不在单次数据量,而在口径确认。以制造业PMI或居民消费价格为例,可先由MCP按主题筛选指标,再结合所属表、单位和频率确定具体口径。选定指标后,MCP可依据指标名称和所属数据表获取历史序列,并整理指标定义、最新观测日期、最近若干期数值和缺失记录。若研究重点是跟踪最新发布,应优先采用包含公布日和公布时间的简表;若需要更长历史或更细分项,则可使用完整表。

应用边界与风险提示

CJPY的核心定位仍是轻量级投研数据工具。它不直接生成投资结论,也不替代专业回测和交易系统;其主要作用是降低基础数据准备成本。工具不会替代研究方法、数据核验和投资判断,MCP任务模板也不保证宿主客户端能够自动形成正确结论。使用时应持续关注数据权限、字段定义、历史可得性、结果完整性和异常值,并对关键结论进行人工复核。

主要风险包括:数据接口稳定性风险,依赖天软TS-OPI服务;数据口径与字段变化风险;自定义因子与回测风险,TSL公式处理不当可能引入未来数据;智能体工具调用与结果解释风险;结果规模与完整性风险,MCP存在返回上限;工具迭代与案例适用性风险。

编辑:流星雨
  • 热门文档
  • 热门文章
  • 本年热门
  • 本季热门
  • 本月热门
  • 本年热门
  • 本季热门
  • 本月热门
分享至