diff --git a/scripts/generate_legacy_report.py b/scripts/generate_legacy_report.py index ac4ab67..3736bba 100644 --- a/scripts/generate_legacy_report.py +++ b/scripts/generate_legacy_report.py @@ -170,7 +170,14 @@ def run_with_legacy_report(): else: continue # 对齐净值数据到回测日期(使用ffill处理日期差异) - nav_aligned = nav_series.reindex(backtest_result.index, method='ffill') + # 先去除重复日期 + if nav_series.index.has_duplicates: + nav_series = nav_series[~nav_series.index.duplicated(keep='last')] + # 确保 backtest_result.index 无重复 + target_index = backtest_result.index + if target_index.has_duplicates: + target_index = target_index[~target_index.duplicated(keep='last')] + nav_aligned = nav_series.reindex(target_index, method='ffill') etf_nav_data_raw[idx_code] = nav_aligned.values # 生成原引擎格式的报告