diff --git a/sanguo_backtest/cta_engine.py b/sanguo_backtest/cta_engine.py index 486d02c..c88eac7 100644 --- a/sanguo_backtest/cta_engine.py +++ b/sanguo_backtest/cta_engine.py @@ -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,