🤖【任务派发】小强:2026-08-12 检查量化数据库数据完整性(日线+财务) #19

Open
opened 2026-08-12 09:18:07 +08:00 by xiaowu · 3 comments

📋 任务(来自小五调度,Gitea 任务总线)

执行人: @小强(openclaw-1,Gitea 账号 xiaoqiang)
派发时间: 2026-08-12 09:20
任务: 对照当前日期(2026-08-12),检查量化数据库(quant_db)数据完整性——股市日线数据及财务数据等

🔑 数据库连接信息(凭证)

HOST=192.168.27.11
PORT=5438
DB=quant_db
USER=xiaoqiang
PASSWORD='Xq@2026Dba!Secure'
# 连接示例(密码含特殊字符 ! 必须用单引号):
# psql "postgresql://xiaoqiang:Xq@2026Dba!Secure@192.168.27.11:5438/quant_db"
# 或:export PGPASSWORD='Xq@2026Dba!Secure' && psql -h 192.168.27.11 -p 5438 -U xiaoqiang -d quant_db
  • 账号为专用只读账号(CONNECT + public SELECT),已配置于 openclaw-1 容器 ~/.profile
  • 若环境变量已存在(PGHOST/PGPORT/PGDATABASE/PGUSER/PGPASSWORD),直接用 psql 即可

📚 参考模块

  • 仓库:shellway/quanxiel → quantitative_data/ 目录
  • schema.sql:全部表结构定义(表名、字段、索引、注释)
  • config.py:连接配置与导入参数
  • 表清单:stock_basic / daily / adj_factor / moneyflow / daily_basic / income / balancesheet / cashflow / fina_indicator / trade_cal / index_daily

✅ 检查内容(对照 2026-08-12)

  1. 日线数据 daily:最新 trade_date 是否为最近交易日(2026-08-12 前后,注意周末/节假日);近 10 个交易日是否连续无缺口;总行数;覆盖股票数
  2. 财务数据(income / balancesheet / cashflow / fina_indicator):最新报告期(end_date / ann_date)到哪一期,是否覆盖 2026 年一季报/中报周期;各表行数
  3. 交易日历 trade_cal:是否覆盖到 2026-08;是否含 2026-08-12 附近
  4. 股票基本信息 stock_basic:数量、上市状态分布
  5. 其他:adj_factor / daily_basic / moneyflow / index_daily 最新日期与行数
  6. 异常项:空表、数据断层、最近日期缺失、行数明显异常

🎯 验收标准

  • 在评论中贴出检查结果,格式:
    [数据库健康检查 2026-08-12] 表X: N行 / 最新日期 YYYY-MM-DD ✅/❌ ...
  • 明确列出:哪些数据完整、哪些缺失/过期、建议的补数动作
  • 创建时间:2026-08-12(小五调度)
## 📋 任务(来自小五调度,Gitea 任务总线) **执行人:** @小强(openclaw-1,Gitea 账号 xiaoqiang) **派发时间:** 2026-08-12 09:20 **任务:** 对照当前日期(2026-08-12),检查量化数据库(quant_db)数据完整性——股市日线数据及财务数据等 ## 🔑 数据库连接信息(凭证) ```bash HOST=192.168.27.11 PORT=5438 DB=quant_db USER=xiaoqiang PASSWORD='Xq@2026Dba!Secure' # 连接示例(密码含特殊字符 ! 必须用单引号): # psql "postgresql://xiaoqiang:Xq@2026Dba!Secure@192.168.27.11:5438/quant_db" # 或:export PGPASSWORD='Xq@2026Dba!Secure' && psql -h 192.168.27.11 -p 5438 -U xiaoqiang -d quant_db ``` - 账号为专用只读账号(CONNECT + public SELECT),已配置于 openclaw-1 容器 ~/.profile - 若环境变量已存在(PGHOST/PGPORT/PGDATABASE/PGUSER/PGPASSWORD),直接用 psql 即可 ## 📚 参考模块 - 仓库:`shellway/quanxiel` → `quantitative_data/` 目录 - `schema.sql`:全部表结构定义(表名、字段、索引、注释) - `config.py`:连接配置与导入参数 - 表清单:stock_basic / daily / adj_factor / moneyflow / daily_basic / income / balancesheet / cashflow / fina_indicator / trade_cal / index_daily ## ✅ 检查内容(对照 2026-08-12) 1. **日线数据 daily**:最新 trade_date 是否为最近交易日(2026-08-12 前后,注意周末/节假日);近 10 个交易日是否连续无缺口;总行数;覆盖股票数 2. **财务数据**(income / balancesheet / cashflow / fina_indicator):最新报告期(end_date / ann_date)到哪一期,是否覆盖 2026 年一季报/中报周期;各表行数 3. **交易日历 trade_cal**:是否覆盖到 2026-08;是否含 2026-08-12 附近 4. **股票基本信息 stock_basic**:数量、上市状态分布 5. **其他**:adj_factor / daily_basic / moneyflow / index_daily 最新日期与行数 6. 异常项:空表、数据断层、最近日期缺失、行数明显异常 ## 🎯 验收标准 - 在评论中贴出检查结果,格式: `[数据库健康检查 2026-08-12] 表X: N行 / 最新日期 YYYY-MM-DD ✅/❌ ...` - 明确列出:哪些数据完整、哪些缺失/过期、建议的补数动作 - 创建时间:2026-08-12(小五调度)

[数据库健康检查 2026-08-12](小强执行)

✅ 已连接 quant_db(192.168.27.11:5438,只读账号 xiaoqiang)

检查结果

表 行数 日期范围 最新日期 状态
daily 12,693,910 2010-01-04 ~ 2025-12-31 2025-12-31 ❌ 缺2026年7个月
adj_factor 13,331,407 2010-01-04 ~ 2025-12-31 2025-12-31 ❌ 同上
daily_basic 13,352,109 2010-01-04 ~ 2025-12-31 2025-12-31 ❌ 同上
income 252,774 报告期至 2025-09-30 公告 2025-12-31 ❌ 缺2025年报/2026一季报
balancesheet 245,625 报告期至 2025-09-30 公告 2025-12-31 ❌ 同上
cashflow 251,394 报告期至 2025-09-30 公告 2025-12-31 ❌ 同上
fina_indicator 258,152 报告期至 2025-12-31 公告 2026-08-06 ⚠️ 报告期滞后,但公告有2026年数据
trade_cal 11,688 2010-01-01 ~ 2025-12-31 2025-12-31 ❌ 无2026年日历
stock_basic 5,873(L:5534 + D:339) - - ✅ 正常
moneyflow 0 - - ❌ 空表
index_daily 0 - - ❌ 空表

结论

🔴 严重:全库 2026 年数据缺失,日线/复权/每日指标/交易日历均停在 2025-12-31,滞后 7 个多月(约 150+ 交易日)
🔴 moneyflow、index_daily 为空表(从未导入或导入失败)
🟡 财务三表最新报告期 2025-09-30,缺 2025 年报 + 2026 一季报;fina_indicator 报告期到 2025-12-31(公告有 2026-08-06 记录,部分补录)
✅ stock_basic 正常(含退市股 339 只)

建议补数动作

  1. 重启 Tushare 定时导入:daily/adj_factor/daily_basic 从 2026-01-01 增量补到最近交易日
  2. trade_cal 更新至 2026 全年
  3. moneyflow/index_daily 检查导入脚本,重新全量拉取
  4. 财务三表补 2025 年报(2025-12-31)与 2026 一季报(2026-03-31)报告期
[数据库健康检查 2026-08-12](小强执行) ✅ 已连接 quant_db(192.168.27.11:5438,只读账号 xiaoqiang) ## 检查结果 | 表 | 行数 | 日期范围 | 最新日期 | 状态 | |---|---|---|---|---| | daily | 12,693,910 | 2010-01-04 ~ 2025-12-31 | 2025-12-31 | ❌ 缺2026年7个月 | | adj_factor | 13,331,407 | 2010-01-04 ~ 2025-12-31 | 2025-12-31 | ❌ 同上 | | daily_basic | 13,352,109 | 2010-01-04 ~ 2025-12-31 | 2025-12-31 | ❌ 同上 | | income | 252,774 | 报告期至 2025-09-30 | 公告 2025-12-31 | ❌ 缺2025年报/2026一季报 | | balancesheet | 245,625 | 报告期至 2025-09-30 | 公告 2025-12-31 | ❌ 同上 | | cashflow | 251,394 | 报告期至 2025-09-30 | 公告 2025-12-31 | ❌ 同上 | | fina_indicator | 258,152 | 报告期至 2025-12-31 | 公告 2026-08-06 | ⚠️ 报告期滞后,但公告有2026年数据 | | trade_cal | 11,688 | 2010-01-01 ~ 2025-12-31 | 2025-12-31 | ❌ 无2026年日历 | | stock_basic | 5,873(L:5534 + D:339) | - | - | ✅ 正常 | | moneyflow | 0 | - | - | ❌ 空表 | | index_daily | 0 | - | - | ❌ 空表 | ## 结论 🔴 严重:全库 2026 年数据缺失,日线/复权/每日指标/交易日历均停在 2025-12-31,滞后 7 个多月(约 150+ 交易日) 🔴 moneyflow、index_daily 为空表(从未导入或导入失败) 🟡 财务三表最新报告期 2025-09-30,缺 2025 年报 + 2026 一季报;fina_indicator 报告期到 2025-12-31(公告有 2026-08-06 记录,部分补录) ✅ stock_basic 正常(含退市股 339 只) ## 建议补数动作 1. 重启 Tushare 定时导入:daily/adj_factor/daily_basic 从 2026-01-01 增量补到最近交易日 2. trade_cal 更新至 2026 全年 3. moneyflow/index_daily 检查导入脚本,重新全量拉取 4. 财务三表补 2025 年报(2025-12-31)与 2026 一季报(2026-03-31)报告期

📖 补数操作指引(来自《数据批量导入.ipynb》)

按 notebook 现有 cell 顺序,补全 2026 年数据需执行以下操作(统一把日期范围改为 2026-01-01 ~ 2026-08-12,原 cell 默认到 2025-12-31):

1️⃣ 交易日历 trade_cal(先补,后续依赖它)

  • Cell 15(指定范围版):import_trade_cal(start_date="2026-01-01", end_date="2026-12-31")

2️⃣ 日线 daily(核心)

  • 推荐:Cell 23+24 断点续传(自动对比 trade_cal 只补缺失日):
    • missing = get_missing_daily_dates(start_date="2026-01-01", end_date="2026-08-12") 查看缺失
    • resume_daily_by_date(start_date="2026-01-01", end_date="2026-08-12", sleep_interval=0.3)
  • 或 Cell 18 按年:import_daily_by_year(start_year=2026, end_year=2026)

3️⃣ 每日指标 daily_basic

  • Cell 30:import_daily_basic_by_date(start_date="2026-01-01", end_date="2026-08-12")

4️⃣ 复权因子 adj_factor

  • Cell 33:stock_list = get_stock_codes_from_db() → import_adj_factor_batch(stock_list, start_date="2026-01-01", end_date="2026-08-12")

5️⃣ 财务数据(补 2025 年报 + 2026 一季报/中报)

  • Cell 35:import_financial_statements(stock_list, start_date="2025-10-01", end_date="2026-08-12")

6️⃣ 指数日线 index_daily

  • Cell 38:import_index_daily(index_codes=[...9个指数...], start_date="2026-01-01", end_date="2026-08-12")

7️⃣ moneyflow ⚠️ 特殊

  • importer.py 无 moneyflow 导入函数,ipynb 也无对应 cell —— 空表不是"没跑",而是从未实现。需另写导入逻辑(Tushare moneyflow 接口,逐日拉取),或确认是否有其他脚本/计划任务负责

运行前注意

  • Cell 5 导入模块需包含 resume_daily_by_date、get_missing_daily_dates(已确认存在)
  • 检查 .env 的 QUANT_START_DATE/QUANT_END_DATE 是否覆盖 2026,TUSHARE_TOKEN 积分是否够 VIP 接口
  • Cell 18/35 耗时较长,建议先跑 Cell 23 看缺失规模再决定

验证

  • 跑完 Cell 28(daily 概览)/ Cell 31(daily_basic)/ Cell 36(财务四表)/ Cell 16(trade_cal)确认最新日期到 2026-08-12
## 📖 补数操作指引(来自《数据批量导入.ipynb》) 按 notebook 现有 cell 顺序,补全 2026 年数据需执行以下操作(**统一把日期范围改为 2026-01-01 ~ 2026-08-12**,原 cell 默认到 2025-12-31): ### 1️⃣ 交易日历 trade_cal(先补,后续依赖它) - Cell 15(指定范围版):`import_trade_cal(start_date="2026-01-01", end_date="2026-12-31")` ### 2️⃣ 日线 daily(核心) - 推荐:Cell 23+24 断点续传(自动对比 trade_cal 只补缺失日): - `missing = get_missing_daily_dates(start_date="2026-01-01", end_date="2026-08-12")` 查看缺失 - `resume_daily_by_date(start_date="2026-01-01", end_date="2026-08-12", sleep_interval=0.3)` - 或 Cell 18 按年:`import_daily_by_year(start_year=2026, end_year=2026)` ### 3️⃣ 每日指标 daily_basic - Cell 30:`import_daily_basic_by_date(start_date="2026-01-01", end_date="2026-08-12")` ### 4️⃣ 复权因子 adj_factor - Cell 33:`stock_list = get_stock_codes_from_db()` → `import_adj_factor_batch(stock_list, start_date="2026-01-01", end_date="2026-08-12")` ### 5️⃣ 财务数据(补 2025 年报 + 2026 一季报/中报) - Cell 35:`import_financial_statements(stock_list, start_date="2025-10-01", end_date="2026-08-12")` ### 6️⃣ 指数日线 index_daily - Cell 38:`import_index_daily(index_codes=[...9个指数...], start_date="2026-01-01", end_date="2026-08-12")` ### 7️⃣ moneyflow ⚠️ 特殊 - importer.py **无 moneyflow 导入函数**,ipynb 也**无对应 cell** —— 空表不是"没跑",而是从未实现。需另写导入逻辑(Tushare `moneyflow` 接口,逐日拉取),或确认是否有其他脚本/计划任务负责 ### 运行前注意 - Cell 5 导入模块需包含 `resume_daily_by_date`、`get_missing_daily_dates`(已确认存在) - 检查 `.env` 的 `QUANT_START_DATE/QUANT_END_DATE` 是否覆盖 2026,`TUSHARE_TOKEN` 积分是否够 VIP 接口 - Cell 18/35 耗时较长,建议先跑 Cell 23 看缺失规模再决定 ### 验证 - 跑完 Cell 28(daily 概览)/ Cell 31(daily_basic)/ Cell 36(财务四表)/ Cell 16(trade_cal)确认最新日期到 2026-08-12
Owner

增加了moneyflow导入模块,已经导入了部分数据。

增加了moneyflow导入模块,已经导入了部分数据。
Sign in to join this conversation.
No labels
3 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: shellway/quanxiel#19