feat(replay): M9-6 Bar Replay 线性重放(as_of 逐日仅用当时数据)

- domain/entities/replay.py:ReplayDay{top/events/counts}/ReplayResult 时间线
- ReplayService:universe.symbols 白名单必填(≤40)且重放交易日 ≤90(防全市场长任务);
  每个交易日以 <=as_of 数据经同一 signal/score 引擎生成帧
- POST /api/replays(边界校验)→ 时间线;供前端 Bar Replay 控件(v3 §20.6 阶段二)
- tests/test_replays.py:重放帧 == 回测 selection_history 逐调仓日一致;范围约束;
  后段暴涨股不泄漏进早段帧(未来函数);API 400/200;全量 pytest 通过
This commit is contained in:
Simon
2026-09-09 07:18:36 +08:00
parent 5bde8f9f5f
commit 37510c1b89
6 changed files with 327 additions and 0 deletions
+2
View File
@@ -16,6 +16,7 @@ from app.api import (
factors,
health,
jobs,
replays,
research,
selections,
signals,
@@ -31,6 +32,7 @@ api_router.include_router(composites.router)
api_router.include_router(research.router)
api_router.include_router(selections.router)
api_router.include_router(charts.router)
api_router.include_router(replays.router)
api_router.include_router(signals.router)
api_router.include_router(strategies.router)
api_router.include_router(jobs.router)