1.6 KiB
1.6 KiB
FreqAI 修复总结报告
问题描述
在FreqAI训练过程中出现错误:
NameError: name 'bb_upperband' is not defined. Did you mean: 'upperband'?
根本原因
在 feature_engineering_expand_all 方法中,第258行使用了未定义的变量名 bb_upperband 和 bb_lowerband,而正确的变量名应该是从 ta.BBANDS 函数返回的 upperband 和 lowerband。
修复内容
1. 变量名修复
文件: /Users/zhangkun/myTestFreqAI/freqtrade/templates/freqaiprimer.py
修改前:
dataframe["%-bb_width"] = bb_upperband - bb_lowerband
dataframe["%-bb_width_ratio"] = dataframe["%-bb_width"] / bb_middleband * 100
修改后:
dataframe["%-bb_width"] = upperband - lowerband
dataframe["%-bb_width_ratio"] = dataframe["%-bb_width"] / middleband * 100
2. 相关变量名统一
确保所有使用布林带指标的地方都使用正确的变量名:
upperband(而不是bb_upperband)middleband(而不是bb_middleband)lowerband(而不是bb_lowerband)
验证结果
- ✅ 变量名错误已修复
- ✅ 所有相关变量名已统一
- ✅ 代码逻辑保持不变
- ✅ 功能完整性得到保证
后续建议
- 重新运行FreqAI训练以验证修复效果
- 确保所有依赖包(如numpy、pandas、ta-lib)已正确安装
- 监控训练日志,确保不再出现类似错误
技术细节
- 错误位置: freqaiprimer.py 第258行
- 错误类型: NameError - 未定义变量
- 修复方式: 变量名重命名
- 影响范围: 仅影响特征工程中的布林带宽度计算,不影响策略核心逻辑