188 lines
12 KiB
JSON
188 lines
12 KiB
JSON
{
|
||
"schema_version": "1.0",
|
||
"system": "Quant OS / quant60 baseline kernel",
|
||
"audit_as_of": "2026-07-31",
|
||
"claim_policy": {
|
||
"baseline_threshold": 60,
|
||
"all_gates_required": true,
|
||
"rule": "A score is earned only by linked, reproducible evidence. Source files, mocks, fixtures and successful unit tests do not prove real-platform, live-broker or compliance gates.",
|
||
"current_claim": "NOT_BASELINE_60"
|
||
},
|
||
"article_reassessment": {
|
||
"design_coverage": {
|
||
"score": 70,
|
||
"out_of": 100,
|
||
"scope": "How much of the intended research-to-production responsibility chain the 2026-07-22 article discusses.",
|
||
"status": "estimated"
|
||
},
|
||
"implementable_specification": {
|
||
"score": 49,
|
||
"out_of": 100,
|
||
"scope": "How much of the article was sufficiently specified to implement without inventing contracts, data semantics, defaults or operational decisions.",
|
||
"status": "estimated"
|
||
},
|
||
"original_implementation_evidence": {
|
||
"score": 6,
|
||
"out_of": 100,
|
||
"scope": "Evidence present before the first code delivery; this historical score is not the score of the current Quant OS repository.",
|
||
"status": "historical"
|
||
},
|
||
"gates_passed": 0,
|
||
"gates_total": 10
|
||
},
|
||
"current_delivery": {
|
||
"score": null,
|
||
"status": "not_scored",
|
||
"reason": "Quant OS 已接通本地 synthetic 五层候选链,能冻结 Ridge ModelBundle、逐层 trace 和无股数 TargetPackageV1;一个 synthetic-research TargetPackage 已在真实 JoinQuant hosted 环境完成消费、账户/开盘价绑定、3 笔委托和 3 笔成交,因此 execution 层已有真实平台观察。但真实 provider-data 长样本/OOS 尚未接入,JoinQuant 没有重跑上游 Universe/Alpha/Portfolio/Risk,QMT peer 与逐层真实数据 parity 仍缺失,factor risk、CVXPY 和 guarded TWAP/POV 也尚未进入当前主链。因此它仍是 NOT_BASELINE_60,G9 未通过。",
|
||
"verified_supporting_facts": [
|
||
"The independent-repository standard-library suite completed 325 tests with OK and 1 optional-runtime skip; successful local tests do not prove real-platform, broker or compliance gates.",
|
||
"The local synthetic research entrypoint now executes one causally linked Universe → Ridge Alpha → cost/risk-aware Portfolio → post-risk gate → reference Execution path, freezes a replayable ModelBundle, and publishes a hash-linked TargetPackageV1 and five-layer trace. This is structural synthetic evidence only.",
|
||
"The connected candidate currently uses 60-session diagonal realized variance, explicit spread/fee/square-root-impact cost forecasts, the deterministic constrained optimizer, a post-target risk gate, and reference lot/T+1 order deltas. factor_risk.py, the optional CVXPY solver mode, and guarded TWAP/POV are not selected by the current main slice.",
|
||
"JoinQuant and QMT target-package modes verify an exact embedded package tape, match the declared dual clock, bind platform equity/positions/sellable quantities/prices, and reject missing, duplicate or tampered packages without falling back to momentum. Both modes have local harness/contract evidence; JoinQuant execution alone now also has one narrow real hosted smoke.",
|
||
"JoinQuant backtest 2457a7c39a276e09e0fabf99e28978e1 ran the exact FINAL4 bundle for 2024-03-11 through 2024-03-13 with CNY 1,000,000, daily Python3 and CSI 500 benchmark. It observed 3/11 and 3/13 no-op, an exact package hit on 3/12 using CURRENT_DATA_DAY_OPEN, exact package weights, three accepted orders and three fills. The input evidence class remains synthetic-research; only execution.real_platform_observed is true, performance_claim is false, and this run earns no G9 or Baseline score.",
|
||
"The JQData adapter maps raw bars, adjustment factor, previous close, daily limits, pause state, PIT is_st and daily PIT index membership into a semantically revalidated snapshot; it rejects an end date that has not reached the provider's complete daily-bar boundary, and only fake-provider tests have been run so far.",
|
||
"The local snapshot can drive snapshot-backtest and snapshot-decision with manifest verification; it freezes a cross-checked provider trading calendar, and a T-close signal can bind only to a broker observation in the unique next session's Asia/Shanghai [09:00,09:30) window without collapsing the two clocks.",
|
||
"CPython 3.12 with pyqlib 0.9.7 completed a native momentum fixture smoke with 24 signals and saved audited portfolio-table hashes, bounds and recomputed metrics.",
|
||
"Qlib Alpha158, LightGBM and Recorder completed a real local fixture smoke with audited portfolio output; the deterministic two-stock synthetic fixture has no investment-value meaning.",
|
||
"The local Tushare CSI500 2018-2025 scoped release double-verified 221/221 selected jobs and confirmed that all remained latest; the live SQLite ledger changed only because of unrelated downloader jobs. The dedicated lineage verifier matched all 221 converter source jobs on id, path, row_count, byte_count, sha256 and request_sha256 with mismatch_count=0, so converter_source_matches_current=true. The verified Qlib provider has data version 5bf19d2da064357ad1802bca4bfa0c0505ed63fe2b24785ec6c56ecff1724963, manifest SHA-256 27fb6fedb6a4b114eae2aba44505fb6c4d32c7a9ae81e58c724dfadb8dd10ed0, 10,011 files, 71,707,194 bytes, 1,942 sessions, 1,111 instruments, adjusted prices, a real SH000905 benchmark and next-session-effective historical membership. Two identical runs produced SHA-256 803035a95ee9cf6f90af20cdf7e7024149b97e0113b585209a80f80048be87d3, 176,615 signals and 1,698 portfolio days. Historical stock_st remains unavailable and the Qlib 9.5% limit threshold is only a market-level approximation, so production_ready and investment_value_claim remain false and gate_credit remains empty.",
|
||
"A real JoinQuant daily hosted backtest completed for 2024-01-02 through 2024-12-31 with CNY 1,000,000; the visible completed-run log had zero ERROR/Traceback/order-rejection entries. That run used portable_momentum_smoke, not the Ridge/TargetPackage Baseline candidate, and earns no candidate or cross-engine gate credit.",
|
||
"The QMT shadow CLI is strictly read-only and produces HMAC account-bound broker observation, broker snapshot and target-diff artifacts. QMT_SHADOW_EVIDENCE_V1 authenticates semantic content, deterministic published bytes, the original decision, planner/engine/operator source and fixed policy; semantic replay verifies exact derived state. Independent local QA completed 58 deterministic scenarios, 500 malformed fuzz cases and 300 legal-observation fuzz cases with no P0/P1. This is Quant OS publisher integrity, not broker attestation, and it still has only fake-broker evidence.",
|
||
"JoinQuant/QMT mock parity is mock_contract_only, real_platform_pass is false and it earns no G9 gate credit."
|
||
],
|
||
"internal_delivery_gaps": [
|
||
"The authorized provider-data path has not yet been connected end to end to the frozen Ridge ModelBundle, calibrated risk/cost inputs, five-layer Baseline candidate and TargetPackage tape; the current connected candidate remains synthetic.",
|
||
"factor_risk.py, the optional CVXPY optimizer mode and guarded TWAP/POV exist as components or optional paths but are not selected by the current Baseline main slice; the connected risk model is 60-session diagonal realized variance and execution is the reference one-shot planner.",
|
||
"One synthetic-research TargetPackageV1 has been observed at the real JoinQuant execution boundary, but JoinQuant did not recompute the upstream four layers; there is no authorized real-data multi-period tape, same-input layer-by-layer parity, or real QMT peer."
|
||
],
|
||
"external_evidence_missing": [
|
||
"authorized JQData market snapshot, licence/lineage record and a frozen provider-data candidate tape",
|
||
"authorized real-data multi-period JoinQuant TargetPackage run plus same-input local/JoinQuant layer-by-layer reconciliation",
|
||
"real QMT TargetPackage built-in and qmttools backtest exports",
|
||
"real QMT historical-ST positive control, terminal/xtquant build record, broker query contract and trade-amount semantic probes, and callback/restart evidence; Baseline 60 requires at least 20 trading days of shadow, while the current Production 80 gap requires at least 60 trading days for the same frozen candidate",
|
||
"continuous reconciliation, recovery drills and broker programmatic-trading report/verification confirmation"
|
||
]
|
||
},
|
||
"gates": [
|
||
{
|
||
"id": "G1",
|
||
"name": "数据时点",
|
||
"status": "not_passed",
|
||
"acceptance": "历史预测可重放当时实际可得数据;财报按 available_time 连接;未来公告注入测试被拒绝。",
|
||
"required_evidence": [
|
||
"PIT 数据 manifest 与字段可得时间规范",
|
||
"未来公告注入测试报告",
|
||
"授权真实数据的历史决策日抽样重放报告"
|
||
],
|
||
"evidence": []
|
||
},
|
||
{
|
||
"id": "G2",
|
||
"name": "样本外验证",
|
||
"status": "not_passed",
|
||
"acceptance": "时间有序且带 purge/embargo 的 walk-forward;测试集隔离;成本后多状态结果已保存。",
|
||
"required_evidence": [
|
||
"切分代码与测试",
|
||
"真实授权长样本上的冻结 walk-forward 报告",
|
||
"未触碰测试集声明和冻结模型包"
|
||
],
|
||
"evidence": []
|
||
},
|
||
{
|
||
"id": "G3",
|
||
"name": "A 股现实",
|
||
"status": "not_passed",
|
||
"acceptance": "停复牌、涨跌停、交易单位、T+1、费用、公司行动和日期化规则均被回放验证。",
|
||
"required_evidence": [
|
||
"每类规则的回归夹具",
|
||
"日期化规则版本",
|
||
"真实平台跨引擎差异报告"
|
||
],
|
||
"evidence": []
|
||
},
|
||
{
|
||
"id": "G4",
|
||
"name": "稳定合约",
|
||
"status": "not_passed",
|
||
"acceptance": "Signal、Target、OrderEvent、BrokerSnapshot 分层落盘并通过版本化 JSON Schema 验证。",
|
||
"required_evidence": [
|
||
"四类 schema 的发布验证报告",
|
||
"正反例 fixture",
|
||
"迁移兼容性策略和演练"
|
||
],
|
||
"evidence": []
|
||
},
|
||
{
|
||
"id": "G5",
|
||
"name": "事前风险",
|
||
"status": "not_passed",
|
||
"acceptance": "目标生成前检查集中度、行业/风格、组合波动、流动性、换手与不可卖仓位。",
|
||
"required_evidence": [
|
||
"真实数据校准的风险模型版本",
|
||
"约束解释与不可行降级测试",
|
||
"压力测试和容量报告"
|
||
],
|
||
"evidence": []
|
||
},
|
||
{
|
||
"id": "G6",
|
||
"name": "订单状态",
|
||
"status": "not_passed",
|
||
"acceptance": "真实或券商认证环境覆盖受理、部分成交、全成、撤单中、已撤、拒单、乱序/重复与未知状态。",
|
||
"required_evidence": [
|
||
"状态机测试报告",
|
||
"券商回调脱敏回放",
|
||
"重启幂等演练"
|
||
],
|
||
"evidence": []
|
||
},
|
||
{
|
||
"id": "G7",
|
||
"name": "可复现",
|
||
"status": "not_passed",
|
||
"acceptance": "每个 run 绑定代码、Python/依赖、配置 hash、数据、模型、规则与随机种子;固定输入可重放。",
|
||
"required_evidence": [
|
||
"发布级 run manifest",
|
||
"干净环境重建记录",
|
||
"版本冻结后的确定性重放差异报告"
|
||
],
|
||
"evidence": []
|
||
},
|
||
{
|
||
"id": "G8",
|
||
"name": "对账与停机",
|
||
"status": "not_passed",
|
||
"acceptance": "启动、运行中、日终对账;不明差异阻止新单;kill switch 与恢复手册经过演练。",
|
||
"required_evidence": [
|
||
"连续对账报告",
|
||
"故障注入/恢复演练",
|
||
"kill switch 测试"
|
||
],
|
||
"evidence": []
|
||
},
|
||
{
|
||
"id": "G9",
|
||
"name": "跨引擎一致性",
|
||
"status": "not_passed",
|
||
"acceptance": "同一 canonical fixture/config 在本地、聚宽与可用 QMT/Qlib 路径上的语义差异处于声明容差且有原因码。",
|
||
"required_evidence": [
|
||
"真实平台跨引擎 manifest",
|
||
"逐层 signal/target/order 差异",
|
||
"Baseline 60 所需的 QMT 至少 20 个交易日影子记录;Production 80 另要求同一冻结候选至少 60 个交易日"
|
||
],
|
||
"evidence": []
|
||
},
|
||
{
|
||
"id": "G10",
|
||
"name": "合规",
|
||
"status": "not_passed",
|
||
"acceptance": "实际券商书面确认接口权限、频率、模拟/实盘差异及程序化交易报告要求,完成先报告后交易。",
|
||
"required_evidence": [
|
||
"券商确认材料索引",
|
||
"程序化交易报告状态",
|
||
"账户权限与限额检查记录"
|
||
],
|
||
"evidence": []
|
||
}
|
||
]
|
||
}
|