> 摘要: 本文从系统架构视角,拆解"价投长盈"微信小程序的设计哲学与技术选型。重点探讨如何在微信生态内构建专业级金融分析能力:包括20指标大盘预警的流式计算架构、DDM/DCF双模型估值引擎的参数化设计、7维贪恐指数的历史回溯存储方案,以及基于 MCP(Model Context Protocol)开放协议 的AI接入层设计——为何选择协议化开放而非传统API,如何在安全可控前提下让外部AI Agent成为用户的"投资助理"。

 

---

 

 一、项目背景:一个独立工具的技术定位

在开发价投长盈之前,我作为设计者面临的核心矛盾是:专业投资者需要的深度分析能力,与微信小程序轻量、封闭的生态特性之间存在天然张力。

传统解决方案通常走向两个极端:

- SaaS重型化:Wind、Choice等终端功能强大,但年费高昂、学习曲线陡峭,且与移动端场景割裂;

- 工具玩具化:大量小程序只做行情展示或简单PE/PB查询,无法支撑DDM、DCF等需要参数交互的估值建模。

价投长盈的技术定位是"轻入口、重计算、开放核":

- 轻入口:依托微信生态,用户无需下载独立App;

- 重计算:估值模型、历史回测、银行评分等复杂运算全部下沉至服务端;

- 开放核:通过MCP协议将用户数据主权交还用户,允许外部AI安全接入。

整体架构采用 BFF(Backend for Frontend)+ 领域微服务 分层模式,通过API网关统一鉴权,后端按业务域拆分为估值引擎、评分服务、资产配置、MCP适配等独立模块。

 

---

 

 二、核心模块架构设计思路

 2.1 大盘预警:20指标流式计算Pipeline

大盘预警不是静态规则判断,而是每日盘前跑批的 多因子流式计算Pipeline。

技术选型思路:

- 时序数据库(InfluxDB):20个指标每日产生带时间戳的多维数据点,需要高效支持范围查询与聚合计算,关系型数据库在回溯60日、180日趋势时性能衰减明显;

- 调度器(Airflow):指标数据源异构(交易所行情、宏观数据、自研因子),需要统一的DAG调度保障每日6:00前完成全量计算;

- 阈值动态化:区别于固定阈值(如"PE>30就预警"),系统采用历史分位动态阈值,每个指标的"异常"定义随市场状态漂移。

工程难点在于多源数据的 时间对齐。部分宏观数据(如国债收益率)更新频率为日级,而期指基差为分钟级,Pipeline需要设计 数据水位线(Watermark) 机制,确保低频次数据不会阻塞整体计算。

 2.2 贪恐指数:7维数据模型与历史回溯

市面贪恐指数多为单值输出(如"贪婪指数75"),用户无法追溯"75"的构成与演变。

价投长盈的设计思路是 "高维解构 + 时间切片":

- 将情绪拆分为 7个独立正交维度(趋势、广度、成交、风险、资金、期指、股债),每个维度有独立计算逻辑与权重;

- 存储层按 date + 7维指标 的宽表模型存入时序库,建立倒序索引支持快速回溯60日;

- 前端通过增量渲染策略,仅绘制可视区域的数据点,避免60日雷达图在移动端卡顿。

关键设计决策:为何是7维?这并非拍脑袋而定。我们在早期版本中尝试过3维(仅趋势、成交、资金),发现无法解释"2024年9月底"这类趋势与资金背离的市场状态。增加广度、风险、期指、股债后,指数对极端情绪的解释力显著提升。

 2.3 估值引擎:参数化模型与回测验证架构

这是系统最核心的计算域。设计哲学可概括为 "公式标准化、参数开放化、结果可验证"。

(1)DDM/DCF双模型参数化

传统工具的估值模型是黑箱:用户看到一个"内在价值"数字,但永续增长率、WACC、预测期等关键假设不可见、不可改。

我们的设计是 "模板默认 + 用户覆盖":

- 系统基于行业与历史数据提供默认参数模板;

- 用户可在前端通过滑块/输入框覆盖任意参数;

- 每次参数变更触发后端重新计算,而非前端写死公式。

(2)历史回测与偏差可视化

参数开放后带来的新问题是:用户可能输入不合理的参数组合。为此我们设计了 历史回测验证层:

当用户修改参数后,系统不仅计算当前估值,还会用 同一套参数 回推过去5年的理论估值,并与当年实际市值对比,生成 偏差值曲线。

这条曲线的意义在于:

- 如果偏差长期为正(理论值持续高于市值),说明你的参数可能系统性乐观;

- 如果偏差围绕0轴波动,说明参数假设与历史市场定价逻辑基本吻合。

技术实现上,回测计算属于CPU密集型任务,我们将其拆分为异步队列,前端通过WebSocket接收计算完成推送,避免阻塞用户交互。

 2.4 银行评分:多维度加权与披露模板适配

银行股是价值投资的高频标的,但普通工具的财务指标对银行严重失真(PE/PB不区分资产质量)。

评分体系设计采用 AHP层次分析法 确定四大维度(质量、盈利、资本充足、机构评级)权重,避免主观拍脑袋。

更具工程价值的细节是 披露模板适配:

- 银行季报与年报的披露项存在结构性差异(如季报不披露资本充足率详细分项、不良生成率等);

- 系统维护两套评分模板(季报模板 vs 年报模板),计算时根据报告期自动匹配;

- 前端明确提示用户"年报跟年报比,季报跟季报比",避免跨期比较导致的误判。

 2.5 资产配置:从"百分比"到"金额"的设计转向

传统资产配置工具以 百分比 为核心(如"高股息仓占比30%"),但价投长盈选择了 "金额"作为第一性显示单位。

产品逻辑:百分比是静态结构,而投资者真正关心的是 "我每年能收到多少分红现金"。系统维护分红现金流账本(Dividend Cash Flow Ledger),根据持仓股数与最新年度分红预案,实时累加分红金额。

调仓算法基于目标市值占比与当前市值的偏离度,计算具体买卖金额。这种设计让投资者能直观感知被动现金流规模,而非仅看到抽象的仓位比例。

 

---

 

 三、MCP协议接入层:开放架构与安全边界

 3.1 为何选择MCP而非传统REST API?

在接入AI能力时,我们面临三种技术路径:

1. 自建ChatBot:在小程序内嵌AI对话窗口,但受限于微信生态与模型能力边界;

2. 开放REST API:供外部AI调用,但存在上下文割裂、权限粗放、协议不统一的问题;

3. MCP协议:标准化工具发现与调用机制,AI一次连接即可获取所有可用工具Schema。

选择MCP的核心考量是 "数据主权归用户":

- 用户的持仓、估值参数、评分结果是敏感数据;

- 传统API模式下,用户需要把账号密码交给第三方AI平台;

- MCP模式下,用户生成 有限权限Token,自主决定AI能读取哪些数据(如只开放估值查询、不开放持仓明细),且可随时吊销。

 3.2 MCP Server 工具设计

我们将核心能力抽象为 4个标准化工具(Tools):

- get_portfolio_status:持仓、资产配置偏离度、分红总额;

- get_stock_valuation:个股DDM/DCF估值及历史回测偏差;

- get_bank_score:银行股评分详情;

- get_market_warning:大盘预警状态及20指标明细。

每个工具均通过JSON Schema声明输入输出,AI在对话中可自主决策调用哪些工具组合回答用户问题。

 3.3 安全鉴权:Token分级与最小权限

MCP接入的安全设计遵循 最小权限原则:

- 采用JWT Token,内置权限掩码(Scope Mask),用户可在小程序内勾选授权范围(如仅允许AI读取估值数据、禁止读取持仓);

- Token有效期30天,支持用户手动吊销;

- MCP Server在每次调用时校验Token有效性、权限覆盖范围、以及用户是否开启"AI访问"总开关(二次确认)。

 3.4 实际应用场景

用户配置MCP Server后,可在支持MCP的AI客户端(如OpenClaw、Claude Desktop)中实现自然语言交互:

> "帮我检查持仓偏离情况,再看看招商银行的DCF估值和不良贷款率。"

AI会自动调用 get_portfolio_status、get_stock_valuation、get_bank_score 三个工具,聚合后返回结构化分析,而非基于训练数据的猜测。

 

---

 

 四、数据层与性能优化策略

 4.1 小程序端性能优化

微信小程序的包体积限制(2MB)与单线程JS引擎对金融图表极不友好。我们的优化策略:

- 分包加载:ECharts图表库放入独立分包,主包仅保留启动逻辑;

- 计算完全下沉:DDM/DCF、回测、评分计算全部在服务端完成,前端仅接收渲染坐标,避免在JS线程执行 heavy computation;

- 增量渲染:贪恐指数60日回溯、回测偏差曲线采用可视区域局部渲染,降低内存占用;

- 骨架屏:大盘预警、银行评分等数据密集型页面使用骨架屏,缩短首屏感知时间。

 

---

 

 五、总结:设计哲学与开源展望

价投长盈的技术架构可归结为三个核心主张:

1. 模型透明化:DDM/DCF不是黑箱,每个参数可查看、可修改、可回测验证;

2. 数据主权化:通过MCP协议,用户自主控制AI访问边界,而非将数据交给封闭平台;

3. 场景专业化:银行评分、分红账本、资产配置等模块,针对价值投资场景深度定制,拒绝通用型工具的"一刀切"。

未来技术方向:

- 开源非核心MCP工具适配层,降低社区开发者接入成本;

- 探索Agentic Workflow,让AI不仅读取数据,还能基于用户规则生成调仓建议;

- 引入向量数据库,支持基于财报文本的语义检索(如快速定位"提及房地产风险敞口的银行")。

 

---

 

体验入口:

- 微信搜索:价投长盈

- 或复制以下链接发给微信任意人,点击跳转:#小程序://价投长盈/pG­R­F­A­T­X­w­n­d­J­N­w­gp

 

> 技术交流: 如果你对MCP协议在金融工具中的应用、或估值模型的工程化设计感兴趣,欢迎在评论区交流。点赞过500,考虑开源MCP Server适配层设计文档。

 

---

 

声明: 本文涉及的技术架构基于价投长盈现有功能的设计思路分享,旨在探讨微信小程序与MCP协议结合的技术可行性。投资有风险,工具仅为辅助,不构成任何投资建议。

 

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐