feat: operationalize local Tushare Qlib research

This commit is contained in:
2026-07-31 01:26:49 +08:00
parent f81c116bfe
commit 6275370afc
21 changed files with 4438 additions and 401 deletions
+83 -35
View File
@@ -1,6 +1,6 @@
// Generated by tools/build_public_status.py; do not edit by hand.
window.QUANT_OS_PUBLIC_STATUS = {
"auditAsOf": "2026-07-30",
"auditAsOf": "2026-07-31",
"bundles": {
"artifacts": [
{
@@ -198,6 +198,12 @@ window.QUANT_OS_PUBLIC_STATUS = {
"label": "Tushare inventory and Qlib bridge record",
"path": "docs/TUSHARE_LOCAL_DATA.md"
},
{
"id": "tushare-csi500-research-run",
"kind": "machine_record",
"label": "Tushare CSI500 2018-2025 reproducible research run",
"path": "evidence/tushare/CSI500-2018-2025/5bf19d2d/run.json"
},
{
"id": "platform-deployment",
"kind": "runbook",
@@ -213,7 +219,7 @@ window.QUANT_OS_PUBLIC_STATUS = {
],
"freshness": [
{
"asOf": "2026-07-30",
"asOf": "2026-07-31",
"evidenceLinks": [
"scorecard",
"audit"
@@ -222,7 +228,7 @@ window.QUANT_OS_PUBLIC_STATUS = {
"label": "项目证据审计",
"semantics": "证据盘点日期;不是部署时间,也不是行情截止日。",
"status": "recorded",
"value": "2026-07-30"
"value": "2026-07-31"
},
{
"evidenceLinks": [
@@ -257,23 +263,58 @@ window.QUANT_OS_PUBLIC_STATUS = {
"value": "2024-03-11 — 2024-03-13; 3 orders / 3 fills"
},
{
"completedPartitions": 35,
"completedRows": 28731,
"completionLabel": "35/428(约 8.2%",
"completionRatio": 0.081776,
"benchmarkCumulativeReturn": 0.7895593835,
"calendarSessions": 1942,
"completedPartitions": 96,
"completedRows": 8813885,
"completionLabel": "96/96(约 100%",
"completionRatio": 1.0,
"converterSourceMatchesCurrent": true,
"effectiveMembershipSnapshots": 96,
"evidenceLinks": [
"tushare-csi500-research-run",
"tushare-data",
"scorecard"
],
"gateCredit": [],
"id": "tushare-daily-market-data",
"label": "Tushare daily 行情覆盖",
"marketDataFrom": "1990-12-19",
"marketDataThrough": "1993-10-29",
"plannedPartitions": 428,
"instrumentCount": 1111,
"investmentValueClaim": false,
"label": "Tushare CSI500 scoped research release",
"lineageMatchedFields": [
"id",
"path",
"row_count",
"byte_count",
"sha256",
"request_sha256"
],
"lineageMismatchCount": 0,
"marketDataFrom": "2018-01-02",
"marketDataThrough": "2025-12-31",
"maxDrawdown": -0.6041641366,
"observedMembershipSnapshots": 97,
"plannedPartitions": 96,
"portfolioDays": 1698,
"productionReady": false,
"semantics": "marketDataThrough 仅取自 daily 行情分区;绝不使用覆盖更晚的 trade_cal 日期。",
"status": "partial",
"value": "35/428(约 8.2%),行情截至 1993-10-29"
"providerBytes": 71707194,
"providerDataVersion": "5bf19d2da064357ad1802bca4bfa0c0505ed63fe2b24785ec6c56ecff1724963",
"providerFiles": 10011,
"providerManifestSha256": "27fb6fedb6a4b114eae2aba44505fb6c4d32c7a9ae81e58c724dfadb8dd10ed0",
"providerTreeSha256": "f173b8095fd9a62a63807324fa48bad83f0c282eea3abba871d0b0efd30b199f",
"runSha256": "803035a95ee9cf6f90af20cdf7e7024149b97e0113b585209a80f80048be87d3",
"sameSessionMembershipUse": false,
"selectedDailyRows": 1975455,
"semantics": "96/96 只表示 2018—2025 scoped daily 输入完整且 221/221 source jobs 经双重校验;全局 ledger 因无关下载任务发生变化,但 scoped jobs 仍为 latestlineage 工具按 id/path/row_count/byte_count/sha256/request_sha256 验证 converter 221/221 零差异。universe 成分次一交易日生效。该 Qlib run 未使用逐股涨跌停,stock_st 不可用,不代表 production-ready 或投资价值。",
"signalRows": 176615,
"snapshotJobs": 221,
"sourceJobCount": 221,
"sourceStable": true,
"stateDbChangedDuringVerification": true,
"status": "research_only",
"strategyCumulativeReturn": 0.2531519864,
"value": "96/96 scoped daily 分区;221/221 source jobs;行情 2018-01-02 — 2025-12-31",
"verifiedSnapshotJobs": 221
},
{
"evidenceLinks": [
@@ -525,24 +566,25 @@ window.QUANT_OS_PUBLIC_STATUS = {
"status": "not_passed"
}
],
"generatedAt": "2026-07-30T00:00:00Z",
"generatedAt": "2026-07-31T00:00:00Z",
"generatedAtSource": "audit_as_of",
"layers": [
{
"capabilities": [
"JQData raw/factor/limits/paused/PIT membership/ST snapshot",
"Tushare completed-Parquet inventory and immutable Qlib provider",
"Tushare scoped source release and verified immutable Qlib provider",
"semantic manifest and data-version verification"
],
"claim": "不可变快照、PIT 字段合同和 Tushare→Qlib 技术链路已有本地合同/运行证据;这些 provider-data 路径尚未接成当前 Ridge 五层候选。",
"evidenceLinks": [
"architecture",
"tushare-data",
"tushare-csi500-research-run",
"scorecard"
],
"id": "data",
"limitations": [
"尚无授权 JQData 真实快照与许可 lineage;Tushare 镜像仅部分完成且缺生产关键字段;当前五层候选仍使用 synthetic 数据。"
"Tushare 2018—2025 中证 500 scoped research 链已验证,但 live raw 仍可变、stock_st 不可用、9.5% 涨跌停为市场级近似,且尚未接入当前 Ridge 五层候选;JQData 授权快照与许可 lineage 仍缺失。"
],
"name": "数据与时点",
"releaseVerified": false,
@@ -1439,15 +1481,16 @@ window.QUANT_OS_PUBLIC_STATUS = {
"status": "real_runtime"
},
{
"claim": "93 个 completed 文件全部通过 size/SHA/row-countv4 provider verifier 成功;同一动量命令连续两次 evidence JSON byte 相同",
"claim": "selected jobs double verified、仍 latest;独立 lineage 验证 221 jobs×6 fields、mismatch 0、converter current truev2 verifier 通过:1,111 instruments、1,942 sessions、1,975,455 rows97 observed/96 effective snapshots 严格 500 成分、次日生效;双次 JSON byte-identical",
"evidenceLinks": [
"platform-matrix",
"tushare-data"
"tushare-data",
"tushare-csi500-research-run"
],
"id": "tushare-local-to-qlib",
"intendedUse": "completed Parquet 的只读盘点、不可变 provider 与本地研究 smoke",
"intendedUse": "live mirror 只读盘点、scoped release、不可变 provider 与本地研究",
"limitations": [
"daily 仅完成约 8.2%,缺复权、真实 benchmark、PIT 成分/ST/停牌/涨跌停;production_ready=false"
"event-time/保守次日生效 PIT 近似,不是严格 knowledge-time PIT;不同 start 的首观测锚 provider 不可直接拼接;research-only、gate_credit=[]ST/统一 9.5% 仍缺"
],
"liveReady": false,
"name": "Tushare local → Qlib",
@@ -1475,18 +1518,18 @@ window.QUANT_OS_PUBLIC_STATUS = {
"provenance": {
"baselineConfig": "configs/baseline.json",
"bundleManifest": "dist/bundle_manifest.json",
"payloadSha256": "2582133135aa956bb567fd009e73d31c3242ffb4f89b8cf70d2932027cc5d763",
"payloadSha256": "c607f08ef7450714084a562a39afe8d98783550882fbb26b4a844c7161f5bfe1",
"payloadSha256Semantics": "SHA-256 of canonical payload before payloadSha256 is added.",
"platformMatrix": "docs/PLATFORM_MATRIX.md",
"production80Assessment": "profiles/production-80/current-assessment.json",
"production80Standard": "profiles/production-80/standard.json",
"releaseReachability": "releases/quant60-research-candidate-v1/reachability.json",
"scorecard": "gate_scorecard.json",
"sourceSetSha256": "92485e439b1ecfb75166f8750e26b4d392d44ff614755295635e7761fa255c5c",
"sourceSetSha256": "de518af50036a250cf75ea53e0b6804b14043f55abd19125e279e4117c833f87",
"sources": [
{
"path": "gate_scorecard.json",
"sha256": "2cc29f8d3670cd2e1e90ebe10a7d4d5a1ab9fc6a6b08612df2bbad485cd19655"
"sha256": "8723af0d0a29ea540f91bb9f82fbdd982f31903bc8d0959dfa96d8740564d925"
},
{
"path": "profiles/baseline-60/profile.json",
@@ -1512,17 +1555,21 @@ window.QUANT_OS_PUBLIC_STATUS = {
"path": "evidence/joinquant/TP-20240311-795dcfba/2457a7c39a276e09e0fabf99e28978e1/run.json",
"sha256": "9956c5e61bdc1c82bc24f20f24c1d65a201bab2f71c2c9e4e23eb5bd40eca6ce"
},
{
"path": "evidence/tushare/CSI500-2018-2025/5bf19d2d/run.json",
"sha256": "6374776487a4a10c6351e2844eba74f7af4ab1db5696dc4d13d5672da9daab76"
},
{
"path": "configs/baseline.json",
"sha256": "939a7df386b06bc82869940572c35544e9361913b94d9e03027411e51b1006e1"
},
{
"path": "README.md",
"sha256": "0bf0562ae9247a88a5b0248f66b9b314d7ab0ea435bc8f8e5efa78f7d2f785bb"
"sha256": "e67e9fb71550cedbf3f8436c06ceafc5d1fc50e34ba0feaf66310aee8ec5ea78"
},
{
"path": "docs/ARCHITECTURE.md",
"sha256": "8aae46f1b371651ac6f72905b7bcb3d72fdfda2a793e5505ab890352921c3219"
"sha256": "a2f9be07b138d587ffa1cb01608e8a469af8a951ef7e6ac371752eb8cdd2ae2a"
},
{
"path": "docs/architecture/ARCHITECTURE_80.md",
@@ -1542,11 +1589,11 @@ window.QUANT_OS_PUBLIC_STATUS = {
},
{
"path": "docs/getting-started/GETTING_STARTED_80.md",
"sha256": "5c18a558bd2f9e1640144a1729309bf38ada3185188c985476bd609b28c4479e"
"sha256": "14339c6324b142d176813bd274b70cd55b4532d7bfc8f5a39408cc33737df7ba"
},
{
"path": "docs/PLATFORM_MATRIX.md",
"sha256": "9c7952b019c92efd1055488b58838045ee30979ccc84008cd1218fab2a6d6717"
"sha256": "90c8936b2c51d9e8375e0934f1e9894e9c6fc9c2f29eb2920a8ed226869ba392"
},
{
"path": "docs/CROSS_ENGINE_CONSISTENCY.md",
@@ -1562,11 +1609,11 @@ window.QUANT_OS_PUBLIC_STATUS = {
},
{
"path": "docs/TUSHARE_LOCAL_DATA.md",
"sha256": "611b120ba59b59b443b5cd9237356c509f2f2699063784a4685506e88a95adea"
"sha256": "560d5e039e19393b64aee1d2b1b213ef32c6d67734688627c261da138a860246"
},
{
"path": "MIGRATION.md",
"sha256": "2b86f9f4ced687de61c4a3268d57bb38cde4fb1fac75be61ec8cd18c12ccdd26"
"sha256": "5f16fc828879a33a686b6d10c30129938c29b2669b0da2808d889b4542d4165e"
},
{
"path": "ops/README.md",
@@ -1602,7 +1649,7 @@ window.QUANT_OS_PUBLIC_STATUS = {
},
{
"path": "tools/build_public_status.py",
"sha256": "ec24dd12a6383ab1210a475c6f982b911f6ce45a7c205b9474bb2bb70665bc2a"
"sha256": "17d78b2fbe8e3373ebb283483a4f00f5fae0b0ec2e93a3f9a751c1d69f2004e5"
},
{
"path": "tools/check_tracked_secrets.py",
@@ -1612,7 +1659,8 @@ window.QUANT_OS_PUBLIC_STATUS = {
"path": "tools/inventory_local_assets.py",
"sha256": "f52a89b2e42d0f3aed7e3c79e0110c37cab779794f550658116e07b9e338160b"
}
]
],
"tushareResearchRun": "evidence/tushare/CSI500-2018-2025/5bf19d2d/run.json"
},
"schemaVersion": 2,
"summary": {
@@ -1621,17 +1669,17 @@ window.QUANT_OS_PUBLIC_STATUS = {
"candidateRealPlatformObserved": true,
"gateCoverageLabel": "0/10 passed",
"investmentValueClaim": false,
"optionalSkipsRecorded": 6,
"optionalSkipsRecorded": 1,
"productionReady": false,
"realRuntimeSmokes": [
"JoinQuant TargetPackage execution consumer: one synthetic-research package, 3 orders / 3 fills (not Baseline/G9 evidence)",
"JoinQuant portable_momentum_smoke hosted daily backtest (not Baseline/TargetPackage evidence)",
"Qlib native momentum fixture",
"Qlib Alpha158 + LightGBM fixture",
"Tushare completed-partition Qlib momentum smoke"
"Tushare CSI500 2018—2025 scoped Qlib momentum reproducibility run"
],
"testEvidenceQualifier": "Scorecard-recorded run; tests do not prove real-platform or broker gates.",
"testsRecorded": 315
"testsRecorded": 325
},
"system": "Quant OS / quant60 baseline kernel"
};