mystocks_spec 项目全景:A 股量化交易终端
一句话定位:面向个人/小型量化投资者的 A 股桌面端 Web 量化研究、监控、分析与交易辅助平台,采用 Vue 3 + FastAPI + ArtDeco 架构,以功能树、测试门禁和文档真相源分层管理持续演进。
一、项目定位与边界
核心定位(来自 CLAUDE.md §1):
- 面向个人/小团队的本地化部署量化工具,非企业级 SaaS
- 仅桌面端 Web(最小 1280×720),明确拒绝移动端/平板适配
- 以「先路由、再下钻」的文档方法降低新人和 AI 在大型仓库的搜索成本
设计边界(严格区分"适合"与"过度设计"):
| 适合本系统 | 不适合(过度设计) |
|---|---|
| 单用户/小团队认证 | 复杂 RBAC 权限系统 |
| 基础安全防护 | 企业级安全审计日志 |
| 简单本地缓存 | 分布式缓存一致性 |
| 直接数据库连接 | 连接池复杂治理 |
| 功能性 API | API 网关/限流熔断 |
新增功能评估准则:必要性 → 简洁性 → 维护成本 → 适用性。
二、技术栈与端口
| 层 | 技术 |
|---|---|
| 前端 | Vue 3.4+ / TypeScript / Vite / Pinia / Vue Router / ECharts / KLineCharts / ArtDeco 设计系统 |
| 后端 | Python 3.12+ / FastAPI 0.114+ / Pydantic / SQLAlchemy |
| 时序库 | TDengine 3.3+(高频时序数据) |
| 关系库 | PostgreSQL 17+ / TimescaleDB(结构化与分析型) |
| 测试 | Vitest / Playwright / Pytest |
| 部署 | PM2(一等公民)/ Docker |
| AI 集成 | Kronos 外部 GPU 推理(contract-first,不内嵌) |
| GPU(可选) | RAPIDS (cuDF/cuML) |
端口(必须通过 .env 注入,禁止硬编码):
| 服务 | 端口 | 备用 |
|---|---|---|
| 前端 | 3020 | 3021 |
| 后端 | 8020 | 8021 |
| QM 前端 | 3030 | — |
| QM 后端 | 8030 | — |
三、项目结构
mystocks_spec/
├── architecture/ # 架构红线、域边界、治理规则(STANDARDS.md 真相源)
├── config/ # PM2、部署、运行配置
├── deps/openstock/ # OpenStock submodule(数据源契约同步)
├── docs/ # 文档系统:FUNCTION_TREE / guides / reports / operations
├── openspec/ # Proposal/spec 工作流(变更管理)
├── scripts/ # 开发、生成、验证、自动化脚本
├── src/ # Python 核心业务与数据层
│ ├── adapters/ # 多数据源适配器(待退役 → OpenStock)
│ ├── core/ # 核心分类、路由、管理器
│ ├── data_access/ # 数据库访问层
│ ├── governance/ # 风控与治理
│ ├── monitoring/ # 监控与告警
│ └── gpu/ # GPU 与加速能力
├── tests/ # 后端、集成、性能、安全测试
├── web/
│ ├── backend/ # FastAPI 后端(app/main.py 入口)
│ │ ├── app/api/ # API 路由
│ │ ├── app/services/ # 应用服务层(含 openstock_client.py)
│ │ └── app/schemas/ # 请求/响应 schema
│ └── frontend/ # Vue 3 + ArtDeco 前端
└── README.md
四、业务功能域(FUNCTION_TREE 1.1.7)
10 大功能域,版本 1.1.7(2026-06-15):
| 领域 | 状态 | 完成度 | 关键能力 |
|---|---|---|---|
| 01-市场数据与行情 | ✅ 完成 | 95% | 多数据源行情、指数、板块 |
| 02-技术分析与指标 | ✅ 完成 | 90% | MA/MACD/RSI/BOLL、缺口分析 |
| 03-策略管理与回测 | ✅ 完成 | 85% | 策略管理、回测引擎 |
| 04-风险管理与监控 | ✅ 完成 | 80% | 风控、持仓监控 |
| 05-投资组合与交易 | 🚧 开发中 | 70% | 组合管理、交易辅助 |
| 06-监控与告警 | ✅ 完成 | 75% | 实时监控、告警推送 |
| 07-高级分析与 AI | 🧪 实验性 | 50% | Kronos 推理、AI 批量分析 |
| 08-系统管理与配置 | ✅ 完成 | 85% | 系统配置、数据源管理 |
| 09-数据存储与管理 | ✅ 完成 | 90% | TDengine/PG 双库分工 |
| 10-公告与信息 | ✅ 完成 | 80% | 公告、新闻聚合 |
前端路由域(router/index.ts 真相源):market / data / watchlist / strategy / trade / risk / system。
五、真相源分层(关键设计决策)
mystocks_spec 最大的工程特色是严格的真相源(Single Source of Truth)分层,避免大型仓库常见的"文档漂移"问题:
| 类别 | 当前入口 | 用途 |
|---|---|---|
| 业务能力真相源 | docs/FUNCTION_TREE.md |
按功能域定位状态、模块路径、API 前缀 |
| 流程治理真相源 | architecture/STANDARDS.md + openspec/AGENTS.md |
审批门禁、工程红线、Proposal 工作流 |
| OpenStock 消费者边界 | architecture/standards/openstock-consumer-boundary-sot.md |
数据源退役规则、CI 校验 |
| AkShare 市场门禁 | docs/api/AKSHARE_MARKET_ENDPOINTS_REPO_TRUTH.md |
约束仅接入本地 akshare 同名函数 |
| 前端类型扩展 | docs/guides/typescript/TYPESCRIPT_EXTENSION_SYSTEM_REPO_TRUTH_GUIDE.md |
extensions 命名空间、canonical 目录 |
| 变更交付 | docs/guides/governance/FEATURE_MANAGEMENT_WORKFLOW.md |
功能域映射、PR 校验 |
推荐阅读顺序(新人/AI 入仓必走):
1. docs/guides/ai-tools/AI_QUICK_START.md — 任务路由入口
2. docs/FUNCTION_TREE.md — 定位目标功能域
3. architecture/STANDARDS.md — 规则与审批
4. openspec/AGENTS.md — proposal/spec 工作流
六、ArtDeco 设计系统
前端视觉主线是 ArtDeco 金融设计系统(不是旧 Element Plus 叙述):
- 品牌 DNA:对角交叉影线、金色光晕(非投影)、Cinzel 大写衬线标题、双框与分隔线语言、罗马数字/旋转菱形点缀
- A 股语义:红涨绿跌(不可覆盖),价格颜色绝不能是唯一信号
- 永久暗色模式,强制
color-scheme: dark - 几何装饰:数据区 0px 圆角,交互区 8px
- 两套间距系统:标准(13 级,4-128px)用于舒适视图;紧凑(4 级,4-16px)用于数据密集面板
- 并行系统:
fintech-design-system.scss服务监控组件(蓝黑+科技蓝),token 独立,禁止与 ArtDeco 混用
使用边界: - 数据密集与执行关键面(交易/风控/监控)→ 克制装饰,优先可扫描性 - 品牌前向面(总览/空状态/功能介绍)→ 可用更强 ArtDeco 动机 - 金融语义永远优先于装饰
七、与其他系统的关系
mystocks_spec 是用户量化生态中的业务终端层,与数据层、执行层、复盘层分工明确:
OpenStock (数据提供者, NAS:8040)
↑ HTTP REST 消费
│
mystocks_spec (业务终端) ── 用户交互、策略/风控/交易 UI
│
├── 数据落地: TDengine (时序缓存) + PostgreSQL (结构化)
│
└── 同一用户的其他工具:
├── MPW-hermes (策略编排/回测引擎, /opt/claude/MPW-hermes)
├── daily-stock skill (每日持仓工作流)
├── trade-audit skill (交易复盘审计)
└── market-review skill (市场复盘报告)
详细对比见 mystocks_spec vs MPW-hermes vs daily-stock 定位对比。
八、关键运行入口
# 后端
cd web/backend
uvicorn app.main:app --host 0.0.0.0 --port "${BACKEND_PORT:-8020}" --reload
# 前端
cd web/frontend
npm run dev -- --port "${FRONTEND_PORT:-3020}"
# PM2 生产运行(一等公民)
pm2 list # 关注 mystocks-frontend / mystocks-backend
# 验证
pytest && ruff check src/ web/backend/app/ && black --check .
cd web/frontend && npx stylelint "src/**/*.{vue,scss,css}" # 零错误
cd web/frontend && npx vue-tsc --noEmit # TS 类型检查
访问地址:前端 http://localhost:3020 / 后端 http://localhost:8020 / Swagger http://localhost:8020/docs。
九、项目演进里程碑
- 早期(2025 Q3-Q4):多代 akshare 适配器并行(Gen1 扁平/Gen2 modules/Gen3 market_adapter),累计 ~5,525 LOC、31 文件
- 2026 Q1:引入 OpenSpec 工作流、ArtDeco 设计系统主线确立
- 2026 Q2:B4.013 Runtime Mainline Bring-Up,确立"主线对齐与结果可见准则"
- 2026-06-29:OpenStock 消费者边界 SOT V1.0 生效,正式开启数据源统一收口
- 当前(2026-07-03):分支
feat/b4-014-fundflow-mixin-openspec-proposal,主线 B4.014 OpenStock routes 迁移,Phase 1 六批业务域分批进行中
迁移路线与治理细节见 OpenStock 消费者边界与数据源迁移路线 和 mystocks_spec 治理体系。