feat(data): 方案A 数据层落地(spec §14)— DB唯一表+治幸存者偏差+权威源
spec §14 方案A 数据层迁移完成 + E2E 验证(read_db_daily: 在市/退市治偏差/ETF 全OK):
- dbbardata('d') 1826万含退市(治回测幸存者偏差, INSERT OR REPLACE staging迁移, WHERE OHLC NOT NULL+COALESCE)
- constituent_unified 7110行/9指数(300/500/50 baostock全集 + 深证4指 akshare cni union + 中证1000/2000 snapshot)
- pe/pb 不进DB -> valuation_baostock/<year>.parquet 按年宽表(2003-2026)
- 废弃 daily_baostock_full/bs_index_constituent(rename _old 保留); 旧4 schtask disabled
- 新 schtask sanguo-bs-eod 18:05(baostock个股日线+15min+拆pe/pb DAILY_LIMIT 48000) + sanguo-xt-eod 18:40(ETF/基金xtata)
- 权威源: baostock个股日线+估值+15min+复权+300/500/50 / xtata ETF+基金+当天实时 / akshare三表+事件+深证中证成份股
- 全程备份+staging+_old保留可回滚; 脚本 audit/probe/migrate/merge/cleanup/fix_config/verify/bs_eod/xt_eod/wrapper/register_schtasks
- 待办(spec §6 使用层): LocalParquetProvider 接 constituent_unified+valuation_baostock + 实时拼接
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""verify_e2e.py — 收尾 E2E: 回测入口 read_db_daily 读 dbbardata 验证。
|
||||
|
||||
方案A 数据层落地后, 确认回测能读到:
|
||||
- 在市股(600519) 日线到 2026-07-22
|
||||
- 退市股(000005) 日线(治幸存者偏差, 迁移前 dbbardata 没有)
|
||||
- ETF(510300) 日线(xtata 源保留)
|
||||
"""
|
||||
import sys
|
||||
sys.path.insert(0, r"C:\sanguo_vnpy_v2")
|
||||
from sanguo_data.config import load_config
|
||||
from sanguo_data.datareader import read_db_daily
|
||||
|
||||
cfg = load_config(r"C:\sanguo_vnpy_v2\config\data_platform.yaml")
|
||||
print("vnpy_db:", cfg.data_paths["vnpy_db"])
|
||||
|
||||
for sym, label, start, end in [
|
||||
("600519", "在市", "2026-07-01", "2026-07-22"),
|
||||
("000005", "退市(治偏差)", "2024-01-01", "2024-04-30"),
|
||||
("510300", "ETF", "2026-07-01", "2026-07-22"),
|
||||
]:
|
||||
bars = read_db_daily(sym, start, end, cfg)
|
||||
last = bars[-1].datetime.date() if bars else "NONE"
|
||||
print(f" {sym}({label}): bars={len(bars)} last={last}")
|
||||
|
||||
print("E2E DBBARDATA OK")
|
||||
Reference in New Issue
Block a user