From d0b9dc8c85b3af201a5ae845c21f7c8d240e4dcd Mon Sep 17 00:00:00 2001 From: hmo Date: Wed, 12 Aug 2026 07:48:47 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E4=BF=AE=E6=AD=A3=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E9=87=87=E9=9B=86=E5=B1=82=E6=A0=B9=E5=9B=A0=E2=80=94=E2=80=94?= =?UTF-8?q?=E4=BB=8E=E6=9D=A5=E5=B0=B1=E6=B2=A1=E6=9C=89=E5=85=A8=E5=B8=82?= =?UTF-8?q?=E5=9C=BA=E6=97=A5=E5=B8=B8=E9=87=87=E9=9B=86cron(6=E6=9C=88?= =?UTF-8?q?=E9=9D=A0=E5=9B=9E=E5=A1=AB=E6=92=91=E7=9D=80,7=E6=9C=88?= =?UTF-8?q?=E6=89=AB=E6=8F=8F=E6=B1=A0=E7=BC=A9=E5=87=8F=E6=9A=B4=E9=9C=B2?= =?UTF-8?q?),sector=5Findex=5Fdaily=E4=BB=8E=E6=9C=AA=E6=9C=89=E5=86=99?= =?UTF-8?q?=E5=85=A5=E8=80=85,news=E9=87=87=E9=9B=86=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=E5=AD=98=E5=9C=A8=E4=BD=86=E6=9C=AA=E6=B3=A8=E5=86=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/system-architecture-review-20260812.md | 24 +++++++++++++-------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/docs/system-architecture-review-20260812.md b/docs/system-architecture-review-20260812.md index a1a268bc..2db1d6a8 100644 --- a/docs/system-architecture-review-20260812.md +++ b/docs/system-architecture-review-20260812.md @@ -81,35 +81,41 @@ ### 🔴 缺口 1:stock_daily 无全市场日K采集 cron -**现状**:stock_daily 共 919 万行 / 4272 只 distinct,但 **2026-08 起每天只更新 122 只**(应该是全市场 4000+)。 +**现状**:stock_daily 共 919 万行 / 4272 只 distinct,但分月分布暴露根因—— +- 2026-01~06:每月 4255-4268 只(历史回填撑着) +- **2026-07:529 只(骤降)** +- **2026-08:122 只(再降)** -**根因**:没有专门的"全市场日K采集"cron。stock_daily 的更新靠各 scanner 顺带写(只覆盖各自扫描池),无人负责全市场刷新。 +**根因**(2026-08-12 实证修正):**从来就没有"全市场日K采集"cron**。stock_daily 唯一 INSERT 写入者是 `migrate_all.py`(一次性数据迁移脚本),`market_screener`/`accumulation_scanner` 均不写,`fetch_tx_klines` 只读不写。6 月的 4268 只是历史回填数据,7 月起只剩 scanner 顺带写的扫描池(529→122 只,在缩)。 **影响**: - p_oversold 扫描器个股 K 线只能 `fetch_tx_klines` 自己拉腾讯行情(不能读本地) - 回测/策略用旧 K 线数据,最新行情缺失 -**修复建议**:注册全市场日K采集 cron(收盘后跑,比如 `10 16 * * 1-5`),用 fetch_tx_klines 批量刷 4272 只到 stock_daily。 +**修复建议**:新建全市场日K采集 cron(收盘后 `10 16 * * 1-5`),fetch_tx_klines 批量刷 4000+ 只到 stock_daily(限速+分批+单例守卫+600s 护栏)。 ### 🔴 缺口 2:stock_news 无采集 cron(8/4 停更) -**现状**:stock_news 403 万行,最新 2026-08-04——**已停更 3 天**。 +**现状**:stock_news 403 万行(2016-01~2026-08-04),**8/4 停更 3 天**。 -**根因**:news_collector.py 和 ths_news.py 写入者存在,但**均未注册 cron**(66 个 cron 里无 news 相关)。 +**根因**:news_collector.py(东财翻页)和 ths_news.py(同花顺)写入者存在且可用(支持 --backfill/--daily),但**均未注册 cron**(66 个 cron 里无 news 相关)。 **影响**:p_oversold 的 news3 因子用 3 天前新闻数据,信号质量下降。 -**修复建议**:注册 news_collector cron(盘前/盘中多次),恢复新闻采集。 +**修复建议**:注册 news_collector cron(盘前 `0 9 * * 1-5 --daily` 增量 + 周末 `--backfill` 回填),恢复新闻采集。 ### 🔴 缺口 3:sector_index_daily 无采集 cron(8/4 停更) -**现状**:sector_index_daily 57.9 万行,最新 2026-08-04——**已停更 3 天**。 +**现状**:sector_index_daily 57.9 万行(2016-07~2026-08-04),分月分布—— +- 2026-01~06:每月 296 行业(回填撑着) +- **2026-07:137 行业(腰斩)** +- **2026-08:8 行业(崩溃)** -**根因**:找不到 INSERT 写入者(grep 无结果),无专门采集 cron。sector_enrich_cninfo 只写 sector_snapshots,不写 index_daily。 +**根因**:**从未有 INSERT 写入者**(grep insert/executemany/replace/to_sql/append 全无结果)——57.9 万行纯历史回填,之后无人维护,7 月彻底停。 **影响**:p_oversold 的 sec_ret20 因子用 3 天前行业数据。 -**修复建议**:注册 sector_index_daily 采集 cron(或让 market_watch/sector_enrich 顺带写 index_daily)。 +**修复建议**:新建 sector_index_daily 采集 cron(收盘后跑),akshare/东财拉 296 行业指数写入(ak.stock_board_industry_summary_ths 已有用法参考 market_watch.py)。 ### 🟡 缺口 4:functional 自检 premarket fail