diff --git a/freqtrade/templates/FreqaiExampleStrategy.py b/freqtrade/templates/FreqaiExampleStrategy.py index c98db1f..2fb4886 100644 --- a/freqtrade/templates/FreqaiExampleStrategy.py +++ b/freqtrade/templates/FreqaiExampleStrategy.py @@ -102,6 +102,15 @@ class FreqaiExampleStrategy(IStrategy): # 检查 MACD 列是否存在 if "macd" not in dataframe.columns or "macdsignal" not in dataframe.columns: + logger.error("MACD 或 MACD 信号列缺失,无法生成买入信号。尝试重新计算 MACD 列。") + try: + macd = ta.MACD(dataframe, fastperiod=12, slowperiod=26, signalperiod=9) + dataframe["macd"] = macd["macd"] + dataframe["macdsignal"] = macd["macdsignal"] + logger.info("MACD 列已成功重新计算。") + except Exception as e: + logger.error(f"重新计算 MACD 列时出错:{str(e)}") + raise ValueError("dataframe 缺少必要的 MACD 列且无法重新计算。") logger.error("MACD 或 MACD 信号列缺失,无法生成买入信号") raise ValueError("DataFrame 缺少必要的 MACD 列") @@ -314,7 +323,7 @@ class FreqaiExampleStrategy(IStrategy): "exit_long" ] = 1 return dataframe - def populate_entry_trend(self, df: DataFrame, metadata: dict) -> DataFrame: + def populate_entry_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame: # 改进买入信号条件 # 检查 MACD 列是否存在 if "macd" not in dataframe.columns or "macdsignal" not in dataframe.columns: