kevin9327
e5f7f625fb
fix(backtest): 信号回测统计里的 inf/NaN 不再让接口返回 500
_json_safe 先命中 `isinstance(v, (int, float, str, bool))` 分支, 原生 float 的
inf/NaN 被原样放行; numpy 分支也只挡 NaN 不挡 inf。pf.stats() 经 pandas
Series.to_dict() 出来时 numpy 标量已装箱成原生 float, 所以清洗实际全部落空。
Starlette 的 JSONResponse 用 json.dumps(allow_nan=False) 渲染, 响应体里出现
一个 inf/NaN 就是整个 POST /api/backtest/run 500
(ValueError: Out of range float values are not JSON compliant)。全部交易都盈利时
Profit Factor = inf、零波动时 Sharpe = NaN 都会触发。
把非有限判定提到原生标量分支之前, 与 app/api/backtest._json_safe 同口径。
2026-09-10 19:38:33 +09:00
..
2026-09-10 08:19:30 +09:00
2026-09-10 09:10:38 +08:00
2026-08-13 20:16:02 +08:00
2026-09-05 22:49:52 +08:00
2026-08-13 20:16:02 +08:00
2026-09-09 15:30:10 +08:00
2026-09-10 09:10:43 +08:00
2026-09-09 11:09:48 +08:00
2026-09-06 17:39:43 +08:00
2026-09-10 19:38:33 +09:00
2026-09-10 07:59:56 +09:00
2026-09-09 11:09:48 +08:00
2026-09-05 15:41:15 +08:00
2026-09-07 15:25:41 +08:00
2026-07-31 19:56:33 +08:00
2026-07-16 12:17:27 +08:00
2026-09-07 15:25:27 +08:00
2026-09-09 11:09:48 +08:00
2026-08-30 19:05:14 +08:00
2026-07-09 17:38:44 +08:00
2026-09-07 15:25:41 +08:00
2026-07-18 23:37:54 +08:00
2026-09-04 16:37:06 +08:00
2026-07-18 23:37:54 +08:00
2026-09-07 15:25:41 +08:00