fix(live): runtime副本孤立加载ImportError根治——2026-08-20晨12引擎崩溃循环事故(6实盘+6影子自建队07:10起每60s崩,当日0成交,9:05/9:30/9:35全未触发)——根因=live_strategy.py台账/B2两行相对导入(from . import live_instance_ledger/from .live_portfolio_proxy):文件被_instance_adapter逐字节复制到runtime/<实例>/后bullet_trade以顶层模块加载(无包上下文)→ImportError;测试全绿盲区=测试以包成员导入相对导入合法,生产孤立加载才崩,nas-verify不启引擎——修=改绝对导入from sanguo_portfolio import(引擎进程项目根在sys.path,同文件其它绝对导入生产已验证可跑);抽_ledger_tools()单函数两种加载上下文单测直打;+3测试(孤立副本顶层import_module复现事故点/包内上下文/静态禁from .回潮);_instance_adapter启动时内容比对自动重拷→VPS落地后下轮引擎重启自愈免手工清runtime;顺手修2个日期硬编码测试(proxy fixture与snapshot的trade_date=2026-08-19→动态今天,当日买入跨日T+1断言必翻红,CI不跑此套件故昨日未暴露);portfolio 398绿 [vps]
This commit is contained in:
@@ -167,7 +167,9 @@ class TestAttributionAndSnapshot:
|
||||
db = str(tmp_path / "live.db")
|
||||
init_db(db)
|
||||
led = LiveInstanceLedger(initial_cash=1_000_000)
|
||||
led.apply_trade(True, "000001.XSHE", 10.0, 100, "t1", "2026-08-19")
|
||||
# trade_date=今天(动态):快照按 now 判 T+1,写死日期跨日必翻红(frozen 归 0)
|
||||
led.apply_trade(True, "000001.XSHE", 10.0, 100, "t1",
|
||||
datetime.now().strftime("%Y-%m-%d"))
|
||||
engine = _fake_engine()
|
||||
|
||||
_snapshot_once(engine, db, 44, led)
|
||||
|
||||
Reference in New Issue
Block a user