diff --git a/framework_v2/scripts/export_backtest_detail.py b/framework_v2/scripts/export_backtest_detail.py index 58c682d..75ef2e0 100644 --- a/framework_v2/scripts/export_backtest_detail.py +++ b/framework_v2/scripts/export_backtest_detail.py @@ -140,6 +140,10 @@ def main(): # 因子数据(DataFrame 格式) factor_df = pd.DataFrame(factors) + # 将因子对齐到 A 股交易日历(前向填充) + # 因子已经在原始数据上计算完成,这里只是将结果对齐到展示日历 + factor_df_aligned = factor_df.reindex(trading_calendar, method='ffill') + # 持仓状态跟踪 holdings_state = {} # {code: {'entry_date': str, 'entry_price': float}} prev_holdings = set() @@ -177,11 +181,11 @@ def main(): 'entry_price': entry_price, } - # 动态阈值 + # 动态阈值(使用对齐后的因子) factor_scores = {} - if date in factor_df.index: - for code in factor_df.columns: - v = factor_df.loc[date, code] + if date in factor_df_aligned.index: + for code in factor_df_aligned.columns: + v = factor_df_aligned.loc[date, code] if pd.notna(v): factor_scores[code] = float(v)