mystocks_spec vs MPW-hermes vs daily-stock 定位对比
用户量化生态中存在三个容易混淆的系统:mystocks_spec(业务终端)、MPW-hermes(策略编排/回测)、daily-stock(每日工作流 skill)。它们分工明确但边界容易踩坑,本文给出清晰的对比与协同关系。
一、三系统一句话定位
| 系统 | 一句话定位 | 形态 | 代码位置 |
|---|---|---|---|
| mystocks_spec | A 股桌面端 Web 量化研究/监控/分析/交易辅助业务终端 | Vue 3 + FastAPI 全栈应用 | /opt/claude/mystocks_spec |
| MPW-hermes | Multi-Project Workspace 跨项目策略编排与回测引擎 | Python 库 + CLI + 测试套件 | /opt/claude/MPW-hermes |
| daily-stock | Hermes skill:每日持仓工作流自动化(持仓汇总→新闻→分析→飞书→备份) | Hermes skill(脚本 + LLM 编排) | ~/.hermes/skills/productivity/daily-stock |
二、核心维度对比
| 维度 | mystocks_spec | MPW-hermes | daily-stock |
|---|---|---|---|
| 首要目标 | 用户日常使用的量化交易终端 UI | 策略研发与回测的编排引擎 | 每日固定流程的自动化执行 |
| 交互方式 | 浏览器 Web UI(1280×720 桌面) | Python API + CLI + 测试 | Hermes 触发词 + cron 定时 |
| 运行时机 | 用户主动打开,持续运行(PM2 常驻) | 研发时手动调用,或批量回测 | 工作日 09:00 cron 自动 + 触发词 |
| 数据源角色 | 消费者(直连 OpenStock) | 消费者(OpenStock 主 + eltdx 备 + CH 补 + online 兜底) | 消费者(TDX + 东方财富 + MySQL) |
| 是否落库 | TDengine 缓存 + PostgreSQL 业务数据 | 不主动落库,走 on-demand | MySQL hermes 库(4 表)+ Obsidian MD |
| 用户是谁 | 直接投资者(John) | 策略研发者(John + AI 协作) | 自动化流程(无交互) |
| AI 协作深度 | 间接(AI 按规范开发它) | 深度(多 CLI worktree 协作 + function-tree 治理) | 中等(skill 内 LLM 编排分析) |
| 测试规模 | Vitest + Playwright + Pytest(分层) | 312 tests(14 文件) | 无独立测试(流程验证即测试) |
三、职责边界
mystocks_spec 负责
- 行情展示、技术分析 UI、策略管理界面、风控监控、投资组合、交易辅助、系统管理
- ArtDeco 金融终端视觉体验
- 业务数据的本地持久化(PostgreSQL 业务表、TDengine 时序缓存)
- 对前端用户的 API 契约(OpenAPI 单一事实来源)
MPW-hermes 负责
- 跨项目编排:Pipeline / Cascade / Parallel 三种模式
- 单项目 worktree 并行 + 写审分离(Codex 写 + Claude Code 审)
- function-tree 主线治理(FT 节点深度 ≤ 2 硬约束)
- A 股策略回测引擎(T+1 拦截 + 成本模型 + 涨跌停)
- 因子 Alpha 策略 + 因子注册(对接 factor-pool)
- Optuna 参数优化 + 过拟合防护 + Walk-Forward 滚动验证
- QuantDinger 作为执行域成员(非平级 HEAD)
daily-stock 负责
- 扫描 Obsidian Vault 持仓目录,合并多账户去重
- 更新
mystocks/index.md(行业分布 + 概念分布 + 技术指标) - 按持仓股拉取东方财富新闻
- 用 mystock-analysis skill 逐只技术分析 + 飞书推送
- MySQL 备份(account_overview / holdings / news / analysis_reports 四表)
- 触发盘中监控(market-monitor skill)
四、数据流与协同关系
OpenStock (NAS:8040, 数据提供者)
↑ ↑
HTTP REST │ │ HTTP REST
│ │
┌──────────────────┘ └──────────────────┐
│ │
▼ ▼
┌────────────────┐ ┌──────────────────┐
│ mystocks_spec │ │ MPW-hermes │
│ (业务终端) │ │ (策略编排/回测) │
│ │ │ │
│ TDengine 缓存 │ │ factor-pool 接入 │
│ PostgreSQL业务 │ │ QuantDinger 执行 │
└────────────────┘ └──────────────────┘
▲ ▲
│ 读 MySQL holdings │ 策略导入
│ │
│ ┌──────────────────────────────┐ │
│ │ daily-stock skill │ │
│ │ (每日工作流自动化) │ │
│ │ │ │
│ │ 持仓 → 新闻 → 分析 → 飞书 │ │
│ │ → MySQL 备份 → 盘中监控 │ │
│ └──────────────────────────────┘ │
│ │
│ 写 MySQL hermes.holdings │
│ (daily-stock 产出的持仓数据) │
│ │
└───────────── 共享 MySQL hermes 库 ─────────────┘
关键协同点: - daily-stock 写 MySQL holdings → mystocks_spec 可读(理论上的协同,实际各自独立运行) - mystocks_spec 与 MPW-hermes 共享 OpenStock → 都是消费者,互不干扰 - trade-audit skill 读券商导出文件 → 独立于三者,做交易复盘审计
五、功能重叠与边界澄清
5.1 技术分析
- mystocks_spec:内建技术分析 UI(domain-02,90% 完成),用户点击交互
- MPW-hermes:回测引擎内的技术指标计算,批量程序化
- daily-stock:调用 mystock-analysis skill,输出 MD 报告 + 飞书摘要
边界:mystocks_spec 是"交互式",MPW-hermes 是"批量回测式",daily-stock 是"定时报告式"。
5.2 策略管理
- mystocks_spec:策略 UI 展示与参数配置(domain-03,85% 完成)
- MPW-hermes:策略研发、适配、回测、优化(PluginRegistry 8 插件)
- daily-stock:不涉及策略管理
边界:mystocks_spec 展示策略,MPW-hermes 研发策略。用户在 MPW-hermes 回测验证 → 通过的因子/策略 → 可在 mystocks_spec UI 中配置监控。
5.3 持仓与交易
- mystocks_spec:投资组合与交易辅助 UI(domain-05,70%,开发中)
- MPW-hermes:Paper Trading 模拟(10 只标的执行适配,成交率 98%)
- daily-stock:持仓数据汇总与 MySQL 备份(只读分析,不下单)
边界:实盘交易执行归 QuantDinger(执行域成员),mystocks_spec 提供辅助 UI,MPW-hermes 做回测验证,daily-stock 做数据汇总。
六、技术栈对比
| 层 | mystocks_spec | MPW-hermes | daily-stock |
|---|---|---|---|
| 主语言 | Python 3.12 + TypeScript | Python | Python(Hermes venv) |
| 前端 | Vue 3 + ArtDeco + ECharts | 无 UI | 无 UI(Obsidian MD 输出) |
| 后端 | FastAPI + Pydantic + SQLAlchemy | 自定义 src/ 模块 | 脚本式 |
| 时序库 | TDengine 3.3+ | 无(on-demand) | 无 |
| 关系库 | PostgreSQL 17+ | 无(回测结果按需) | MySQL hermes 库 |
| 测试 | Vitest + Playwright + Pytest | pytest(312 tests) | 流程验证 |
| 部署 | PM2 一等公民 + Docker | 直接 python 运行 | Hermes cron |
| 治理 | STANDARDS + OpenSpec + GitNexus | function-tree + 写审分离 | skill SKILL.md |
七、演进路线对比
mystocks_spec
- 当前:B4.014 OpenStock routes 迁移(Phase 1 六批分域)
- 中期:完成 OpenStock 消费者边界收口(Phase 2/3,退役 ~8,600 LOC akshare 代码)
- 长期:投资组合与交易域完善(domain-05 至 ✅)
MPW-hermes
- 当前:12/12 Phase 完成,312 tests 全绿,三步实战验证完成
- 中期:导入 Obsidian vault 策略文件逐个测试;factor-pool draft→verified 推进
- 长期:Hermes cron 每日自动跑因子选股 + 信号生成;QuantDinger 实盘对接
daily-stock
- 当前:稳定运行,工作日 09:00 cron 自动执行
- 持续优化:冷却期机制(3 小时)、多账户合并去重、V5 风控规则拦截
- 与 trade-audit 解耦:审计功能独立子目录,不混入 daily-stock scripts
八、用户架构原则在三者中的体现
用户长期坚持的原则在三个系统中有不同体现:
| 原则 | mystocks_spec | MPW-hermes | daily-stock |
|---|---|---|---|
| REST 直连优先,MCP 不做运行时主通道 | OpenStockClient REST 消费 | OpenStock REST 四级路由 | TDX REST + 东方财富 API |
| 数据消费者不经过中间存储层 | TDengine 仅作降级缓存 | on-demand fetch 不落库 | MySQL 仅作备份与报表源 |
| 最小改动原则 | STANDARDS 反碎片化熔断 | function-tree 节点深度 ≤ 2 | skill 独立,不混入 trade-audit |
| 可配置参数放 YAML | ecosystem.config.js + .env | 策略参数 YAML | signal_config.yaml |
| 方案先行 | OpenSpec proposal 必走 | FT 主线 authorize 前置 | SKILL.md 即规范 |
九、何时不该混淆
常见误用警示:
- ❌ 用 MPW-hermes 做日常持仓监控 → 应该用 daily-stock + mystocks_spec
- ❌ 用 mystocks_spec 做策略批量回测 → 应该用 MPW-hermes(它的回测引擎经过 312 tests 验证)
- ❌ 在 daily-stock 里混入交易审计 → 用户明确要求 trade-audit 完全独立
- ❌ 让 mystocks_spec 直接 import akshare → 违反 OpenStock 消费者边界 SOT
- ❌ 让 MPW-hermes 自建数据抓取层 → 违反"REST 直连优先,不自己实现数据抓取层"
- ❌ 把 daily-stock 的脚本当作 mystocks_spec 的数据源 → 两者独立,daily-stock 只写 MySQL/Obsidian,不向 mystocks_spec 提供数据
十、科学组织的建议
基于三者定位,推荐的协作模式:
-
策略研发阶段(MPW-hermes 主导) - 在 MPW-hermes 用 function-tree 治理研发策略 - 接入 factor-pool 真实因子,跑 Optuna 优化 + Walk-Forward 验证 - 通过的策略导出为可复用产出物(
.h5因子文件) -
策略部署阶段(mystocks_spec 主导) - 在 mystocks_spec UI 配置已验证的策略参数 - 监控运行状态(domain-04 风险管理 + domain-06 监控告警) - 用户通过 Web 终端做日常决策
-
日常运营阶段(daily-stock 主导) - 工作日 09:00 自动汇总持仓 + 拉取新闻 + 技术分析 - 飞书推送摘要,用户在手机即可查看 - 盘中 market-monitor 每分钟刷新(30 分钟 cron 扫描风控)
-
复盘阶段(trade-audit 主导,独立于三者) - 工作日 18:30 自动复盘审计 - 读券商导出文件,FIFO 配对 + V5 风控规则检查 - 输出审计报告到 Obsidian + 飞书
四个阶段、四个系统,各司其职,通过 OpenStock(数据)、MySQL(持仓)、Obsidian(报告)三个共享层串联。
相关页面:mystocks-spec-项目全景、openstock-消费者边界与数据源迁移、mystocks-spec-治理体系、A股策略体系全景:从分形到动量到趋势跟随。