fix: 修复因子前向填充不生效的 bug(清理调试代码)
问题根因: - pandas reindex(method='ffill') 只填充新增行的 NaN,不填充已存在的 NaN - 当 factor_df 中已有境外市场放假日期的 NaN 值时,reindex 无法填充 修复方案: - 改为两步操作:reindex() 然后 ffill() - ffill() 会填充所有 NaN,包括已存在的 验证结果: - 2026-04-30 HSI: None → 0.2388 ✅ - 2026-04-30 GDAXI: None → 0.5647 ✅ - 2026-05-08 HSI: None → 0.1144 ✅
This commit is contained in:
@@ -177,19 +177,6 @@ class GlobalRotationStrategy(StrategyBase):
|
||||
# 对齐所有因子的日期
|
||||
factor_df = pd.DataFrame(factors)
|
||||
|
||||
# 调试输出
|
||||
print(f"\n [DEBUG] generate_signals - factor_df 信息:")
|
||||
print(f" 索引类型: {type(factor_df.index)}")
|
||||
print(f" 总行数: {len(factor_df)}")
|
||||
print(f" 日期范围: {factor_df.index[0]} ~ {factor_df.index[-1]}")
|
||||
|
||||
# 检查 HSI 的有效数据
|
||||
if 'HSI' in factor_df.columns:
|
||||
hsi_valid = factor_df['HSI'].dropna()
|
||||
print(f" HSI 有效数据: {len(hsi_valid)} 天")
|
||||
print(f" HSI 最后3个有效值:")
|
||||
print(f" {hsi_valid.tail(3).to_dict()}")
|
||||
|
||||
# 获取动态短债阈值(如果使用)
|
||||
bond_threshold = None
|
||||
if self.use_dynamic_threshold and self.bond_code and self.bond_code in factors:
|
||||
|
||||
Reference in New Issue
Block a user