fix issue
This commit is contained in:
parent
516813f427
commit
5ea63b154c
@ -247,15 +247,34 @@ class FreqaiPrimer(IStrategy):
|
||||
df_15m = self.dp.get_pair_dataframe(pair=metadata['pair'], timeframe='15m')
|
||||
|
||||
# 确保df_15m中包含rsi_15m列,如果没有则计算
|
||||
if 'rsi_15m' not in df_15m.columns:
|
||||
# 使用pandas_ta计算14期RSI
|
||||
try:
|
||||
import pandas_ta as ta
|
||||
rsi_series = ta.rsi(df_15m['close'], length=14)
|
||||
df_15m['rsi_15m'] = rsi_series
|
||||
if 'rsi_15m' not in df_15m.columns:
|
||||
# 使用pandas_ta计算14期RSI
|
||||
rsi_series = ta.rsi(df_15m['close'], length=14)
|
||||
df_15m['rsi_15m'] = rsi_series
|
||||
except Exception as e:
|
||||
# 如果计算失败,创建一个默认值列
|
||||
logger.warning(f"[{metadata['pair']}] 计算15m RSI时出错: {e}")
|
||||
df_15m['rsi_15m'] = 50 # 设置默认值为中性
|
||||
|
||||
df_15m = df_15m.rename(columns={'date': 'date_15m'})
|
||||
merged_data = dataframe.merge(df_15m[['date_15m', 'rsi_15m']], how='left', left_on='date', right_on='date_15m')
|
||||
merged_data = merged_data.fillna(method='ffill')
|
||||
# 重命名date列并保留必要的列
|
||||
df_15m = df_15m[['date', 'rsi_15m']].rename(columns={'date': 'date_15m'})
|
||||
|
||||
# 合并数据
|
||||
merged_data = dataframe.copy()
|
||||
# 创建合并列
|
||||
merged_data['rsi_15m'] = 50 # 设置默认值
|
||||
|
||||
# 尝试合并数据
|
||||
try:
|
||||
# 使用更简单的方式:直接将df_15m的rsi_15m列映射到dataframe
|
||||
# 创建一个日期到rsi的映射字典
|
||||
date_rsi_map = df_15m.set_index('date_15m')['rsi_15m'].to_dict()
|
||||
# 使用映射填充rsi_15m列
|
||||
merged_data['rsi_15m'] = merged_data['date'].map(date_rsi_map).ffill().bfill()
|
||||
except Exception as e:
|
||||
logger.warning(f"[{metadata['pair']}] 合并15m数据时出错: {e}")
|
||||
|
||||
# 趋势反转信号:15m RSI超买
|
||||
trend_reversal = merged_data['rsi_15m'] > 75
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user