reindex and merge

This commit is contained in:
Ubuntu 2025-08-31 18:33:19 +08:00
parent 7892332420
commit b1e9aef36f

View File

@ -152,6 +152,13 @@ class FreqaiPrimer(IStrategy):
# 获取 1h 数据
df_1h = self.dp.get_pair_dataframe(pair=metadata['pair'], timeframe='1h')
# 计算 1h 布林带
bb_1h = ta.bbands(df_1h['close'], length=self.bb_length, std=self.bb_std)
df_1h['bb_lower_1h'] = bb_1h[f'BBL_{self.bb_length}_{self.bb_std}']
df_1h['bb_upper_1h'] = bb_1h[f'BBU_{self.bb_length}_{self.bb_std}']
# 计算 1h RSI 和 EMA
df_1h['rsi_1h'] = ta.rsi(df_1h['close'], length=self.rsi_length)
df_1h['ema_50_1h'] = ta.ema(df_1h['close'], length=50) # 1h 50周期EMA
df_1h['ema_200_1h'] = ta.ema(df_1h['close'], length=200) # 1h 200周期EMA
@ -171,7 +178,7 @@ class FreqaiPrimer(IStrategy):
# 将 1h 数据重新索引到主时间框架 (3m)
df_1h = df_1h.set_index('date').reindex(dataframe['date']).reset_index()
df_1h = df_1h.rename(columns={'index': 'date'})
df_1h = df_1h[['date', 'rsi_1h', 'trend_1h', 'ema_50_1h', 'ema_200_1h']].fillna(method='ffill')
df_1h = df_1h[['date', 'rsi_1h', 'trend_1h', 'ema_50_1h', 'ema_200_1h', 'bb_lower_1h', 'bb_upper_1h']].fillna(method='ffill')
# 合并 1h 数据
dataframe = dataframe.merge(df_1h, how='left', on='date')