From b1e9aef36f3e35ca66e9b0388df33ce43cccd21e Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Sun, 31 Aug 2025 18:33:19 +0800 Subject: [PATCH] reindex and merge --- freqtrade/templates/freqaiprimer.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/freqtrade/templates/freqaiprimer.py b/freqtrade/templates/freqaiprimer.py index 82e53682..947d2b4f 100644 --- a/freqtrade/templates/freqaiprimer.py +++ b/freqtrade/templates/freqaiprimer.py @@ -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')