claude_dev
|
59da65b839
|
fix(backtest): 结果页指标全显"—" + 任务重启后404
两个根因:
1. relative_metrics 缺字段(routes.py): get_result 的 relative_fields 列表
漏了 total_return/annual_return/sharpe_ratio/max_drawdown 4 个字段, 导致
这 4 个指标永远进不了响应 → 前端 MetricCards 显"—"。补全为 11 字段。
2. 任务 task_id 不持久(runner/cta_engine): submit_cta 用 cta_{symbol}_{id(params)}
(内存地址) 作 runner id, 而 run_cta_backtest 内部另生成 cta_{uuid} 存 DB,
两者持久层不相交 → 重启后 pool 内存映射丢失, get_result(runner_id) 的
load_result_by_task_id 查不到 → /result 404 → 前端指标全 0 + 图表无数据。
改为 submit 前置生成稳定 uuid, 透传给 run_cta_backtest 复用, 使
runner-id == DB task_id (单一 id, 重启可查)。
附: Dashboard 最近任务"策略/因子"列 min-width 150→190(长策略名不再截断)
测试: test_runner task_id 断言同步新格式
|
2026-07-11 22:10:48 +08:00 |
|
claude_dev
|
3c6f25d1b0
|
fix(backtest): NaN/Inf浮点→None消毒(vnpy统计+empyrical指标+时序)修JSON序列化500
|
2026-07-11 14:33:41 +08:00 |
|
claude_dev
|
f7c2e2eea3
|
fix(backtest): benchmark全链路透传(API→runner→engine) + metrics分支用_dcfg修cfg=None导致relative_metrics空
|
2026-07-11 14:27:19 +08:00 |
|
claude_dev
|
b9197a8889
|
feat(backtest): 回测流程集成基准对比—产出相对指标+时序json
|
2026-07-11 13:44:27 +08:00 |
|
claude_dev
|
28aea67232
|
feat(s1): 回测核心端到端跑通(vnpy client 对齐)
- 修 submit_cta/optimize 策略字符串→类解析(get_strategy_class)
- cta_engine: worker 进程设 vnpy DB→quant_trading.db(修 0 根数据)
- equity_curve 取自 calculate_result 的 daily_df(修 get_all_daily_results 对象问题)
- kline 补 cfg(find_config_path 共享)
- 端到端冒烟通过:DoubleMaStrategy 600000 → equity111/pnl111/trades1/kline117
|
2026-07-07 06:21:17 +08:00 |
|
claude_dev
|
510f77e6ea
|
fix(backtest): result_id 用 DB 行 id + equity/trades 落 JSON(S1.1+S1.2)
- BacktestResult 加 id;save_result 设 result.id=lastrowid(修 get_result bug)
- runner._on_done 用 result.id(getattr 兜底 FactorReport)
- cta_engine 构建 equity_curve/trades DataFrame;save 传 file_dir
- result_store parquet→JSON(去 pyarrow 依赖,本机/容器都稳)
- 16 tests passed
|
2026-07-07 06:06:10 +08:00 |
|
claude_dev
|
cb220619ef
|
feat(backtest): 接真实 CTA 策略跑通端到端回测(DoubleMaStrategy on 600000)
修复 cta_engine 在真数据上的多个 bug(Phase 2 未在真数据验证):
- interval "1d" -> "d"(vnpy Interval.DAILY.value)
- capital 0 -> 1_000_000(0 致首笔交易即爆仓,统计全 0)
- statistics 改用 calculate_statistics(df)(旧代码误用 calculate_result 拿 DataFrame)
- statistics JSON-safe(vnpy 可能含 Timestamp)
- test_cta_engine mock 匹配新流程(calculate_statistics 返回统计字典)
验证:diag_cta.py 真实回测 DoubleMaStrategy on 600000 (2024H1, 111 天)
→ 真实统计 total_return -0.017% / sharpe -1.03 / max_drawdown -2.17 / 1 trade
容器 79 tests passed。
|
2026-07-06 23:33:24 +08:00 |
|
claude_dev
|
a4ce3aed85
|
feat(backtest): cta_engine BacktestingEngine wrapper
|
2026-07-06 10:57:29 +08:00 |
|