feat(data): get_closes_panel 生产化(qfq 前复权 + UNION ALL 340x 提速 + chunk) + 000938 行情

G5-P1 接口生产化(本地已建 c8f26be 但未部署 VPS — 策略 session 报缺失的根因):
- fq 参数(raw/qfq/前复权, 默认 raw 向后兼容): 批量前复权用单次 WHERE code IN (...) 查
  bs_adjust_factor + merge_asof 向量化 asof, 对齐聚宽默认前复权(RPS/均线/动量跨期必需)。
- 性能修复: 原 (symbol=? AND exchange=?) OR 大链打不动复合索引 -> SQLite 全表扫(5只10.6s);
  改 UNION ALL per symbol 走 (sym,exc,interval,datetime) 索引 SEEK(5只0.03s, 340x)。
- chunk=400 抗大体量(参数<999 版本安全); interval/start/end regex 校验字面量注入。
- 部署 VPS。实测 5128只(000985) raw 68s / qfq 33s(逐只会卡死); 200只 qfq 0.9s。
  qfq 与 get_price(fq=qfq) max_diff=0.00; 22 测试 0 回归。

P2 000938: sina_index_eod CODES 加 000938 -> 腾讯灌 1591 行点位(1395~2884, 非基金净值);
腾讯对该码停 2023-02-17(数据源限, 非代码问题)。

解锁: 策略02(000985 5128只选股) + 策略03 长期回测; 策略层 pandas 向量化(P2)归策略 session。
This commit is contained in:
2026-07-28 23:03:32 +08:00
parent de04a8904b
commit e7f9426bcd
2 changed files with 164 additions and 24 deletions
+3 -2
View File
@@ -55,10 +55,11 @@ from dbbardata_utils import normalize_daily_dt # noqa: E402
DB = r"C:\sanguo_vnpy_v2\data\quant_trading.db"
T0 = time.time()
# 14 个中证指数 (与 SZSE 股票码碰撞, 仅灌 SSE 点位行)
# 15 个中证指数 (与 SZSE 股票码碰撞, 仅灌 SSE 点位行)
# 000938 = 中证 1000 等权 (策略需求: RPS/动量基准对比, 加 2026-07-28)
CODES = [
"000928", "000929", "000930", "000931", "000932", "000933",
"000934", "000935", "000936", "000937",
"000934", "000935", "000936", "000937", "000938",
"000852", "000905", "000016", "000985",
]