PanWatch 信号解释器:如何看懂 AI 打分背后的证据链?完整可解释性指南
【免费下载链接】PanWatchPanWatch — AI stock monitoring for A-shares, HK & US markets, powered by TradingAgents. Portfolio insights, real-time alerts & automated reports.|盯盘侠:覆盖 A股/港股/美股的 AI 盯盘、持仓分析、实时提醒与自动报告。项目地址: https://gitcode.com/GitHub_Trending/pa/PanWatch
PanWatch 是一款覆盖 A股/港股/美股的 AI 盯盘工具,其核心卖点之一是把 AI 评分变成"可解释的信号":每个 1~10 分的 AI Score 背后,都有一条清晰的证据链——哪些因子在加分、哪些风险在拖累,全部透明可见。本文带你完整拆解 PanWatch 信号解释器的设计思路与落地方式,新手也能快速看懂 AI 打分背后的逻辑。
为什么 AI 评分需要"证据链"?
多数量化选股工具只给你一个分数,你只知道"它看好这只票",却不知道"为什么看好"。PanWatch 的信号解释器(Signal Explainer)解决的就是这个问题:
- 分数可读:内部 0~100 的排名分压缩成 1~10 的 AI Score,一眼看懂强弱;
- 因子可拆:每个分数拆成"正向(绿)/ 负向(红)"两组因子,附具体贡献值;
- 证据可溯:加分来自选股 α、催化剂、计划质量,扣分来自风险、拥挤度,逐项可查。
这正是可解释性(Explainability)设计在 AI 盯盘场景下的典型落地。
信号解释器的三层架构
📦 整个解释器由三个部分协作完成,代码职责非常清晰:
1. 分数压缩:rank_score → 1~10 AI Score
内部排名分(0~100)直接展示不够直观,解释器用一个简单的线性映射将其压缩到 1~10 分区间(边界自动夹紧),让"8 分"这种表达更贴近日常认知。
核心实现在 src/modules/research/signal_explain.py:
to_ai_score():完成 0~100 → 1~10 的映射与边界处理;explain_factors():把因子拆解成正向/负向两组,各取贡献绝对值最大的前 5 个;enrich_signal():给单条信号注入ai_score与factor_explain字段。
2. 因子拆解:绿色加分 vs 红色拖累
解释器把 6 类因子分成两个阵营:
| 阵营 | 因子 | 中文标签 | 含义 |
|---|---|---|---|
| 加分项 | alpha_score | 选股α | 基础选股能力的贡献 |
| 加分项 | catalyst_score | 催化 | 消息面/技术面催化事件 |
| 加分项 | quality_score | 计划质量 | 交易计划完整度 |
| 加分项 | source_bonus | 来源加成 | 高置信来源信号 |
| 惩罚项 | risk_penalty | 风险 | 高位、非活跃、低质量计划等 |
| 惩罚项 | crowd_penalty | 拥挤度 | 涨幅过大、放量过度等 |
🎯 拆解规则很直白:加分项为正 → 进绿色"利好"组;惩罚项为正 → 贡献记为负值,进红色"风险"组。每个因子都带具体贡献数值(如选股α +4.2、拥挤 -2.5),排序后取 Top 5 展示,避免信息过载。
3. API 注入:后处理零侵入
解释器是纯函数、不依赖数据库,在 API 层对策略信号列表做后处理注入,见 src/modules/research/api/recommendations.py 的GET /strategy-signals接口——策略引擎照常产出信号,解释器只负责"翻译",互不干扰。
因子从哪来?策略引擎的评分流水线
🔍 解释器拆解的score_breakdown并非凭空而来,而是策略引擎在合成排名分时逐项算出来的。核心逻辑在 src/modules/strategy/strategy_engine.py 的_compute_factor_breakdown:
- 选股α:基于策略基础分与相对强度排名;
- 催化:综合涨跌幅区间、突破/回踩/超跌信号文本、72 小时内的新闻事件分(利好/利空关键词加权);
- 计划质量:入场计划完整度(入场区间、止损、目标价)打分;
- 风险惩罚:高风险等级、单日涨跌幅超 8%、计划质量不足等逐项累加;
- 拥挤度惩罚:涨幅 ≥9%、量比 ≥3、成交额超 80 亿、横截面拥挤度分;
- 市场状态乘数:多头/震荡/空头行情下对买卖信号施加不同倍率。
最终raw_score × 策略权重 × 行情乘数得到 0~100 排名分,且每个分数的原始因子值都会落库为因子快照(StrategyFactorSnapshot),供回溯与评估。
权重可标定:让打分体系持续进化
🧪 一个容易被忽略的设计:因子权重是外置可标定的。src/modules/strategy/factor_weights.py 把各因子权重从"隐式硬编码为 1"变成数据库中的可配置项,缺失时懒初始化,再由 src/modules/strategy/factor_calibration.py 基于历史后验表现(IC 检验)自动调权。
这意味着:
- 打分规则透明可调,不是黑盒魔法数;
- 权重随市场反馈持续校准,解释器的证据链也随之保持准确;
- 默认权重为 1 时行为零回归,升级风险可控。
前端呈现:一眼看懂的评分卡
💡 在机会页,每条信号卡片直接展示评分、AI 分档与因子 chips,前端实现见 frontend/src/pages/Opportunities.tsx;点击"分享评分"还会生成一张 AI 评分分享卡,Hero 区为X / 10大数字,下方两列分别列出利好因子与风险因子(实现见 frontend/src/components/SignalScoreShareCard.tsx)。
如上图所示:每张信号卡片右上角是内部评分与 AI 10 分档,卡片底部一行彩色 chips 就是解释器输出的因子证据链——绿色为加分项(选股α、计划质量、催化、来源加成),红色为拖累项(风险、拥挤),数值即贡献值。这就是"AI 打分背后的证据链"在界面上的最终形态。
上手体验:三步跑通信号解释器
- 获取代码:
git clone https://gitcode.com/GitHub_Trending/pa/PanWatch; - 启动服务:安装依赖后运行 server.py 启动后端,前端通过 frontend/ 的 Vite 工程启动;
- 打开机会页:进入"机会"标签,查看每条信号的评分、AI 分与因子拆解,并可用分享评分卡导出证据链。
想验证解释器逻辑?单元测试 tests/test_signal_explain.py 用几行断言覆盖了分数映射、正负因子分组、惩罚项负值记法等全部关键路径,是理解设计的最佳入口。
小结:可解释性如何重塑 AI 盯盘体验
PanWatch 的信号解释器用一套极简的设计回答了"AI 凭什么打这个分":
- 1~10 AI Score:把内部分数翻译成人类语言;
- 绿/红因子拆解:加分与拖累逐项量化、按贡献排序;
- 权重外置可标定:打分规则透明且随市场反馈进化;
- 纯函数后处理:零侵入接入,前后端解耦。
对新手来说,这不只是功能,更是一种信任机制——当你能逐条核对证据链时,AI 信号才真正从"黑盒推荐"变成"可验证的参考"。
【免费下载链接】PanWatchPanWatch — AI stock monitoring for A-shares, HK & US markets, powered by TradingAgents. Portfolio insights, real-time alerts & automated reports.|盯盘侠:覆盖 A股/港股/美股的 AI 盯盘、持仓分析、实时提醒与自动报告。项目地址: https://gitcode.com/GitHub_Trending/pa/PanWatch
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考