This website requires JavaScript.
Explore
Help
Register
Sign In
sanguo
/
sanguo_vnpy_v2
Watch
2
Star
0
Fork
0
You've already forked sanguo_vnpy_v2
Code
Issues
3
Pull Requests
Actions
Packages
Projects
Releases
Wiki
Activity
Files
d0a538ced3f3978a97ecdaabaec760ed6c2a6d53
sanguo_vnpy_v2
/
sanguo_trader
/
shadow
T
History
claude_dev
ed15c24db8
CI/CD / test (push)
Successful in 18s
Details
CI/CD / nas-deploy (push)
Successful in 58s
Details
CI/CD / nas-verify (push)
Successful in 11s
Details
feat(trader): B5对账恒等式优先——15:10日终报表加『全账户=Σ实例账本+未归因』层(spec§B5)——①build_identity_report:每QMT账号一行,快照市值vs Σ实例账本市值(live_balance最新,dae56e2起=实例视图),未归因MV+占比,容差0.5%(价格时点差);逐票未归因=快照持仓−Σ实例持仓(6位码对齐)单列(重建后应≈0,大数=遗留/手动仓)②状态四态:pass/no_instances(重建期无实例=恒等式成立)/snapshot_missing(如实FAIL)/unattributed_over_tol(旧全账户行叠加期呈现大额负未归因)③save/load落库identity_reconcile(account+date主键)④15:10调度(_maybe_daily_reconcile)与CLI恒等式先行,再逐对live↔shadow(配对v2不变);+7测试(容差内过/未归因票单列/负未归因/无快照/无实例/多实例Σ不串账号/落库回读);trader 248绿 [vps]
2026-08-19 22:32:00 +08:00
..
__init__.py
feat(shadow-desk): P1-b/c 影子柜台常驻进程+本地撮合broker+前端引擎选择: ShadowBroker(实时价±滑点即时成交/佣金印花最低佣金/A股整手/T+1日锁/资金不足拒单/均价加权/duck-typed BrokerBase协议); runner挂bullet_trade LiveEngine同实盘唯一差=broker_factory换影子(双轨对账基础),成交落paper_trades+30s快照落持仓净值; CLI单实例文件锁(python -m sanguo_trader.shadow); paper_accounts加engine列(eod_replay/shadow迁移); 前端:模拟盘新建组合卡撮合引擎单选+列表影子/日终徽标; 10 broker单测 [vps]
2026-08-14 12:16:05 +08:00
__main__.py
fix(shadow): 多账户worker不抢全局solo锁——根因实锤:__main__对--account N也走~/.sanguo_shadow_desk.lock全局锁,全机只放行一个影子worker(谁先抢到谁活),supervisor多账户并存时其余全部'锁占用'rc=0优雅退出→每60s重拉秒退循环;VPS实录40/41反复退出+42抢到锁独活(shadow_41.log一击定位);单账户时代从未暴露,2026-08-16用户建三影子账户即炸。修:--account分支跳过全局锁直进run_shadow(同账户防重复由bullet_trade runtime/shadow_{aid}实例锁+supervisor children表兜底);solo模式(无--account)维持全局锁防双开;+3路由测试(account跳锁/solo持锁/auto不碰柜台);936绿 [vps]
2026-08-16 18:51:07 +08:00
broker.py
fix(shadow): 影子账本接通引擎账户同步+净值as_of+重启恢复三连修 [vps]
2026-08-19 10:27:58 +08:00
reconcile_report.py
feat(trader): B5对账恒等式优先——15:10日终报表加『全账户=Σ实例账本+未归因』层(spec§B5)——①build_identity_report:每QMT账号一行,快照市值vs Σ实例账本市值(live_balance最新,dae56e2起=实例视图),未归因MV+占比,容差0.5%(价格时点差);逐票未归因=快照持仓−Σ实例持仓(6位码对齐)单列(重建后应≈0,大数=遗留/手动仓)②状态四态:pass/no_instances(重建期无实例=恒等式成立)/snapshot_missing(如实FAIL)/unattributed_over_tol(旧全账户行叠加期呈现大额负未归因)③save/load落库identity_reconcile(account+date主键)④15:10调度(_maybe_daily_reconcile)与CLI恒等式先行,再逐对live↔shadow(配对v2不变);+7测试(容差内过/未归因票单列/负未归因/无快照/无实例/多实例Σ不串账号/落库回读);trader 248绿 [vps]
2026-08-19 22:32:00 +08:00
runner.py
fix(shadow): 影子账本接通引擎账户同步+净值as_of+重启恢复三连修 [vps]
2026-08-19 10:27:58 +08:00
supervisor.py
feat(trader): B5对账恒等式优先——15:10日终报表加『全账户=Σ实例账本+未归因』层(spec§B5)——①build_identity_report:每QMT账号一行,快照市值vs Σ实例账本市值(live_balance最新,dae56e2起=实例视图),未归因MV+占比,容差0.5%(价格时点差);逐票未归因=快照持仓−Σ实例持仓(6位码对齐)单列(重建后应≈0,大数=遗留/手动仓)②状态四态:pass/no_instances(重建期无实例=恒等式成立)/snapshot_missing(如实FAIL)/unattributed_over_tol(旧全账户行叠加期呈现大额负未归因)③save/load落库identity_reconcile(account+date主键)④15:10调度(_maybe_daily_reconcile)与CLI恒等式先行,再逐对live↔shadow(配对v2不变);+7测试(容差内过/未归因票单列/负未归因/无快照/无实例/多实例Σ不串账号/落库回读);trader 248绿 [vps]
2026-08-19 22:32:00 +08:00