reindex and merge
This commit is contained in:
parent
7a582f6b71
commit
46698faf42
@ -96,6 +96,15 @@ class FreqaiPrimer(IStrategy):
|
||||
pairs = self.dp.current_whitelist()
|
||||
return [(pair, '15m') for pair in pairs] + [(pair, '1h') for pair in pairs]
|
||||
|
||||
def _validate_dataframe_columns(self, dataframe: DataFrame, required_columns: list, metadata: dict):
|
||||
"""
|
||||
验证数据框中是否包含所有需要的列。
|
||||
如果缺少列,则记录警告日志。
|
||||
"""
|
||||
missing_columns = [col for col in required_columns if col not in dataframe.columns]
|
||||
if missing_columns:
|
||||
logger.warning(f"[{metadata['pair']}] 数据框中缺少以下列: {missing_columns}")
|
||||
|
||||
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
|
||||
# 计算 3m 周期的指标
|
||||
bb_3m = ta.bbands(dataframe['close'], length=self.bb_length, std=self.bb_std)
|
||||
@ -185,6 +194,11 @@ class FreqaiPrimer(IStrategy):
|
||||
df_1h = df_1h.rename(columns={'index': 'date'})
|
||||
df_1h = df_1h[['date', 'rsi_1h', 'trend_1h', 'ema_50_1h', 'ema_200_1h', 'bb_lower_1h', 'bb_upper_1h', 'stochrsi_k_1h', 'stochrsi_d_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', 'stochrsi_k_1h', 'stochrsi_d_1h',
|
||||
'macd_1h', 'macd_signal_1h']] # 确保包含 macd_1h 和 macd_signal_1h
|
||||
|
||||
# 合并 1h 数据
|
||||
dataframe = dataframe.merge(df_1h, how='left', on='date').fillna(method='ffill')
|
||||
|
||||
@ -241,6 +255,9 @@ class FreqaiPrimer(IStrategy):
|
||||
'trend_3m', 'trend_15m', 'trend_1h_ema', 'market_score', 'market_state',
|
||||
'bullish_engulfing', 'volume', 'volume_ma']].tail(5))
|
||||
|
||||
# 打印最终数据框的列名以验证
|
||||
logger.info(f"[{metadata['pair']}] 最终数据框列名: {list(dataframe.columns)}")
|
||||
|
||||
return dataframe
|
||||
|
||||
def populate_entry_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user