Files
sanguo_vnpy_v2/tests
claude_dev 2197feac33
CI/CD / test (push) Successful in 12s
CI/CD / nas-deploy (push) Successful in 46s
CI/CD / nas-verify (push) Successful in 14s
fix(strategy): 实盘选股挂死根治——证券信息批量委托本地库替600次xtdata RPC + 选股阶段耗时日志 [vps]
2026-08-21 实锤(live_19/shadow_60 同卡):momentum 9:30:06 buy_sign=True 后
47min 零输出被重启;small_cap 同型(fundamentals 超时120s后沉默)。channel_test
正常(不走走filters重取数)。value_selection/all_weather 月度未到期=零成交正常。

根因(VPS离场时段探针27s跑完全路径反推):filters.filter_st/filter_new 逐只
get_security_info,每只2次xtdata RPC(_detect_instrument_type+get_instrument_detail)
且无超时——momentum 10指数×30只×2过滤=600次RPC,开盘时段QMT忙时47min+不归;
provider无get_security_info_batch→filters._batch_security_info回退逐只(风暴路径)。

修法:
- SanguoMiniQmtProvider.get_security_info_batch:委托内部LocalUnifiedProvider
  (2条本地SQL替N×2次RPC,与78d35ba get_closes_panel/get_constituent_ex同款
  委托模式);失败/非dict返None→filters自动回退逐只(不崩策略);全部策略
  (aw/mom/sc/vs含_ex)经共享filters即时受益,影子/回测同速
- momentum/_ex+small_cap/_ex 选股段加阶段耗时日志(池预取/宽表/过滤3段,
  下个9:30若仍有卡点日志直接钉死位置)
- 遗留已报issue:SanguoMiniQmtProvider无get_limit_status_batch→实盘涨跌停/
  停牌filter静默失效(涨停股照买),归数据session按本地公式+单次批量tick根治

测试:+5(委托/失败回退None/非dict回退/filters消费批量零逐只RPC×2,__new__
绕过Mac无bullet_trade的构造raise);portfolio 380绿(13失败全=Mac缺bullet_trade
环境性,NAS CI过)

[vps]
2026-08-21 22:58:57 +08:00
..