fix(backtest): degenerate改status=done+flag—前端status map兼容
degenerate 原为独立 status 值,但前端 statusLabelMap 只认 done/failed/running/pending, 21个零成交结果在 Dashboard 计数/History 筛选/chip 标签消失或空白。改 status='done'+ statistics.degenerate=True+reason,结果页诚实显示 0+空成交,列表/计数正常。
This commit is contained in:
@@ -225,6 +225,9 @@ def run_cta_backtest(
|
||||
elif daily_df is None or (hasattr(daily_df, "empty") and daily_df.empty):
|
||||
_degenerate_reason = "日度盈亏数据为空"
|
||||
if _degenerate_reason:
|
||||
# 标 degenerate flag(status 仍为 done,避免前端 status map 不认导致列表/计数异常;
|
||||
# 结果页据 trades=0 + statistics.degenerate 自然呈现"零成交"诚实状态)
|
||||
statistics["degenerate"] = True
|
||||
statistics["degenerate_reason"] = _degenerate_reason
|
||||
logging.warning("回测退化: %s (symbol=%s strategy=%s)", _degenerate_reason, symbol, strategy_class.__name__)
|
||||
|
||||
@@ -316,11 +319,12 @@ def run_cta_backtest(
|
||||
for t in trades_dict.values()
|
||||
])
|
||||
|
||||
# Build result object — H7: degenerate 时标记状态(不静默 done)
|
||||
# Build result object — H7: degenerate 走 status="done" + statistics.degenerate flag
|
||||
# (不发明新 status 值,前端 status map 只认 done/failed/running/pending)
|
||||
result = BacktestResult(
|
||||
task_id=task_id,
|
||||
type="cta",
|
||||
status="degenerate" if _degenerate_reason else "done",
|
||||
status="done",
|
||||
strategy=strategy_class.__name__,
|
||||
symbol=symbol,
|
||||
params=params,
|
||||
|
||||
Reference in New Issue
Block a user