feat: establish Quant OS production-80 architecture

This commit is contained in:
2026-07-30 22:59:25 +08:00
parent 919c64c679
commit 26cc814f3f
67 changed files with 7005 additions and 142 deletions
+49 -22
View File
@@ -1,13 +1,20 @@
# Quant OS:个人 A 股 60 分 Baseline 工程
# Quant OS:个人 A 股量化研究到受限生产的独立工程
Quant OS 是项目名;`quant60` 是第一版 A 股 Baseline 的 Python
包、CLI namespace 与 artifact 协议前缀。
Quant OS 已从 `quants-strategies` 拆成独立项目。`quant-os` / `quant_os`
是长期 CLI/import`quant60` 是第一版 A 股 Baseline 的兼容包、CLI namespace
与 V1 artifact 协议前缀。60/80 是证据 profile,不再写进产品名。
本项目把 2026-07-22 的技术选型文章落成一个可执行、可审计的模块化单体:
本地与 Colab 可零账号运行工程 smoke;JQData 登录后可生成不可变快照并直接
运行 PIT 本地回测/目标决策;聚宽、QMT 与 Qlib 有各自明确的运行入口
> 当前交易执行范围仅覆盖上交所、深交所(沪深)。北交所尚未接入,
> 所有北交所委托必须 `fail closed`;代码映射支持 `.BJ` / `.XBSE`
> 不代表具备北交所回测或实盘交易能力
> 当前状态仍是 `NOT_BASELINE_60`。本地五层 vertical slice、单测、
本项目正在把 2026-07-22 的技术选型实现,从 `quant60` legacy 内核迁移成
严格边界、可执行、可审计的模块化单体:本地与 Colab 可零账号运行工程
smoke;JQData 登录后可生成不可变快照并直接运行 PIT 本地回测/目标决策;
聚宽、QMT 与 Qlib 有各自明确的运行入口。
> 当前状态仍是 `NOT_BASELINE_60`80 分评估为
> `BLOCKED_FROM_LIMITED_LIVE`、0/100 已验证证据分。本地五层 vertical slice、单测、
> synthetic、fake harness、Qlib fixture、真实聚宽 hosted 动量 smoke,以及
> 单个 synthetic-research TargetPackage 的真实聚宽 **execution smoke**
> 都不能代替授权真实数据 OOS、逐层同输入 parity、真实 QMT、券商影子盘、
@@ -17,15 +24,30 @@ Quant OS 是项目名;`quant60` 是第一版 A 股 Baseline 的 Python
> [`docs/AUDIT_2026-07-25.md`](docs/AUDIT_2026-07-25.md) 与
> [`gate_scorecard.json`](gate_scorecard.json)。
> 新依赖检查当前只覆盖 `src/quant_os/`;约 26k 行 legacy 仍位于
> `src/quant60/`、根级 `adapters/`、`platforms/` 与 `tools/`,按 vertical
> slice 迁移。`doctor.ok = true` 只表示独立仓必需文件和**新 namespace**
> 边界有效,不表示 legacy 已分层,也不表示达到 60/80。生产 trust provider /
> issuer registry 尚未实现,仓库不能自行签发正向 80 分资格。
先读:
- [80 分标准](docs/standards/QUANT_OS_80_STANDARD.md)
- [60 与 80 的差别](docs/standards/BASELINE_60_VS_PRODUCTION_80.md)
- [面向 80 的三平面架构](docs/architecture/ARCHITECTURE_80.md)
- [新架构上手](docs/getting-started/GETTING_STARTED_80.md)
- [独立仓迁移记录](MIGRATION.md)
## 在线公开验收面板
公开只读入口:
[`https://gomars.fun/quants-strategies/quant-os/status/index.html`](https://gomars.fun/quants-strategies/quant-os/status/index.html)
[`https://gomars.fun/quant-os/status/`](https://gomars.fun/quant-os/status/)
页面从 `gate_scorecard.json`、平台矩阵、bundle manifest 和证据文档生成
脱敏的构建时快照,逐层展示数据、模型、回测平台、券商影子盘与 G1—G10
缺口。它不是实时服务健康页,不发布本地行情、账户状态或运行 artifacts。
页面从 Production 80 machine profile、`gate_scorecard.json`、平台矩阵、
bundle manifest 和证据文档生成脱敏的构建时快照,逐层展示数据、模型、
回测平台、券商影子盘与证据缺口。它不是实时服务健康页,不发布本地行情、
账户状态或运行 artifacts。
更新权威记录后必须重新生成并检查页面数据:
@@ -49,7 +71,7 @@ python3 tools/build_public_status.py --check
| QMT built-in/qmttools | 默认动量 smokeTargetPackage 模式为 Python 3.6 backtest-only 消费器 | Python 3.6 语法、TargetPackage/fake/qmttools 合约 | 需要已授权 QMT 客户端、历史数据权限与 TargetPackage 实跑导出 |
| Qlib 0.9.7 | native momentum backtestAlpha158/LightGBM CLI/Recorder 工作流 | Python 3.12 两条 fixture 已真实跑通,并保存表级 hash、行列/时间边界和重算指标 | synthetic 两股票没有投资价值;无真实 OOS、L3/L4 parity |
| Tushare → Qlib | 只读盘点 completed Parquet、校验 checksum、构建/验证不可变 provider、运行本地回测 | 93 个 completed 文件已验证;早期未复权 provider 与两次 byte-identical momentum run | 下载仅到 1993-10;缺复权、真实 benchmark、历史成分/ST/停牌/涨跌停,不能进入生产 decision |
| XtTrader shadow | 只读账户查询、HMAC 账户绑定、broker observation/snapshot、零下单 target-diff 计划与完整 verifier | fake broker/QMT 合约;所有 broker mutation 均不可达 | 需要授权 QMT 环境的账户合同探针、20 日影子、恢复/对账和券商确认 |
| XtTrader shadow | 只读账户查询、HMAC 账户绑定、broker observation/snapshot、零下单 target-diff 计划与完整 verifier | fake broker/QMT 合约;所有 broker mutation 均不可达 | 需要授权 QMT 环境的账户合同探针、恢复/对账和券商确认Baseline 60 至少 20 个交易日,Production 80 当前缺口为同一冻结候选至少 60 个交易日 |
`portable-momentum-v1` 只是当前真实跑过聚宽的跨引擎连通性 smoke,不是
60 分 Baseline。Baseline 的权威决策留在本地:冻结 Ridge model bundle
@@ -68,13 +90,14 @@ make local
它依次执行:
1. 全量单元/合约测试
2. 聚宽与 QMT 单文件 bundle
3. synthetic execution smoke 与完整 manifest verifier
4. synthetic research-to-target 与 research manifest verifier
5. JoinQuant/QMT mock parity 报告及校验
6. capability probe
7. Colab notebook 语法检查和逐 cell 本地执行。
1. 新 namespace 依赖边界和 80 分 profile 评估
2. 全量单元/合约测试
3. 聚宽与 QMT 单文件 bundle
4. synthetic execution smoke 与完整 manifest verifier
5. synthetic research-to-target 与 research manifest verifier
6. JoinQuant/QMT mock parity 报告及校验
7. capability probe
8. Colab notebook 语法检查和逐 cell 本地执行。
等价的脚本入口:
@@ -437,7 +460,9 @@ key。它必须稳定备份、限制访问且绝不
官方 query API 对“失败”和“空列表”的返回合同,并记录实际
terminal/xtquant build、确认 `XtTrade.traded_amount` 成交金额语义与允许
误差。当前 amount 只是被认证的 informational fact,不参与 target quantity
或 proposed delta。之后还要累计至少 20 个交易日、恢复演练和零未知账差。
或 proposed delta。之后还要先满足 Baseline 60 的至少 20 个交易日 shadow、
恢复演练和零未知账差;Production 80 当前要求同一冻结候选累计至少 60 个
交易日。
## Qlib 0.9.7
@@ -553,7 +578,8 @@ real_platform_pass = false
gate_credit = []
```
真实 G9 仍要求聚宽/QMT 导出与至少 20 个交易日 QMT 影子记录。完整层级、
Baseline 60 的真实 G9 仍要求聚宽/QMT 导出与至少 20 个交易日 QMT 影子记录
Production 80 当前要求同一冻结候选至少 60 个交易日。完整层级、
容差和 reason code 见
[`docs/CROSS_ENGINE_CONSISTENCY.md`](docs/CROSS_ENGINE_CONSISTENCY.md)。
@@ -593,7 +619,8 @@ factor risk、CVXPY、TWAP/POV 或 Ridge 上游四层在 hosted 环境被调用
- 聚宽已有单包 TargetPackage execution 导出,但仍缺授权真实数据的多期
TargetPackage、本地/聚宽逐层同输入对账;QMT 尚无真实 peer 导出,QMT
历史 ST 权限正例、账户 query 合同、
20 日只读影子、回调/恢复/对账尚未形成真实证据;
Baseline 60 所需 20 日只读影子、回调/恢复/对账尚未形成真实证据;
Production 80 还要求同一冻结候选累计至少 60 个交易日 shadow;
- 自动 scheduler、日终对账服务、监控告警与 kill-switch 演练未形成连续证据;
- 实际券商程序化交易报告、权限、频率与软件要求尚未书面确认。