freqai同时优化回归和分类参数
This commit is contained in:
parent
6dd39b829f
commit
2728881fe3
@ -480,6 +480,19 @@ class FreqaiPrimer(IStrategy):
|
||||
k_buy = self.linear_map(market_trend_score, 0, 100, 1.2, 0.8)
|
||||
k_sell = self.linear_map(market_trend_score, 0, 100, 1.5, 1.0)
|
||||
|
||||
# 处理分类模型的预测值
|
||||
classification_columns = [col for col in dataframe.columns if "&*-optimal_first_length" in col or "optimal_first_length" in col]
|
||||
if classification_columns:
|
||||
for col in classification_columns:
|
||||
if col in dataframe.columns:
|
||||
# 重命名分类预测列以便后续使用
|
||||
dataframe["optimal_first_length_pred"] = dataframe[col]
|
||||
logger.info(f"[{pair}] 找到分类模型预测列: {col}, 重命名为 optimal_first_length_pred")
|
||||
logger.info(f"[{pair}] 分类预测值统计: {dataframe[col].value_counts().to_dict()}")
|
||||
break
|
||||
else:
|
||||
logger.warning(f"[{pair}] 未找到分类模型预测列,将使用默认值")
|
||||
|
||||
self.buy_threshold = labels_mean - k_buy * labels_std
|
||||
self.sell_threshold = labels_mean + k_sell * labels_std
|
||||
|
||||
@ -1347,9 +1360,8 @@ class FreqaiPrimer(IStrategy):
|
||||
|
||||
try:
|
||||
# 使用分类模型预测最优 first_length
|
||||
if "&*-optimal_first_length" in dataframe.columns:
|
||||
# 获取最新预测值
|
||||
predicted_value = dataframe["&*-optimal_first_length"].iloc[-1]
|
||||
if "optimal_first_length_pred" in dataframe.columns:
|
||||
predicted_value = dataframe["optimal_first_length_pred"].iloc[-1]
|
||||
if pd.notna(predicted_value):
|
||||
optimal_length_class = int(predicted_value)
|
||||
length_mapping = {0: 2, 1: 4, 2: 6, 3: 8, 4: 10}
|
||||
@ -1357,14 +1369,10 @@ class FreqaiPrimer(IStrategy):
|
||||
logger.info(f"[{pair}] ✅ 分类模型预测成功: first_length={first_length} (类别: {optimal_length_class})")
|
||||
else:
|
||||
first_length = 2 # 保持默认值为2
|
||||
logger.warning(f"[{pair}] ⚠️ 分类模型预测为NaN,使用默认值: {first_length}")
|
||||
logger.warning(f"[{pair}] ⚠️ 分类模型预测值为NaN,使用默认值: {first_length}")
|
||||
else:
|
||||
first_length = 2 # 保持默认值为2
|
||||
logger.warning(f"[{pair}] ❌ 分类模型列不存在,使用默认值: {first_length}")
|
||||
|
||||
# 调试信息:显示当前dataframe列
|
||||
ai_columns = [col for col in dataframe.columns if col.startswith('&') or col.startswith('&*')]
|
||||
logger.info(f"[{pair}] 📊 当前AI预测列: {ai_columns}")
|
||||
logger.warning(f"[{pair}] ⚠️ 分类模型列不存在,使用默认值: {first_length}")
|
||||
|
||||
# 根据 first_length 动态调整其他段长
|
||||
second_length = first_length * 3
|
||||
|
||||
25
test_mixed_models.sh
Executable file
25
test_mixed_models.sh
Executable file
@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 测试混合模型策略的启动脚本
|
||||
# 确保使用新的配置文件和模型名称
|
||||
|
||||
echo "🚀 启动混合模型策略测试..."
|
||||
echo "📊 使用模型: freqai_primer_mixed"
|
||||
echo "📁 配置文件: test_mixed_models_config.json"
|
||||
|
||||
# 设置环境变量
|
||||
export FREQTRADE__STRATEGY_NAME="freqaiprimer"
|
||||
export FREQTRADE__CONFIG_PATH="/Users/zhangkun/myTestFreqAI/test_mixed_models_config.json"
|
||||
|
||||
# 启动策略
|
||||
python -m freqtrade trade \
|
||||
--config /Users/zhangkun/myTestFreqAI/test_mixed_models_config.json \
|
||||
--strategy freqaiprimer \
|
||||
--log-level INFO \
|
||||
--freqai-enabled \
|
||||
--freqaimodel LightGBMClassifier \
|
||||
--strategy-path /Users/zhangkun/myTestFreqAI/freqtrade/templates \
|
||||
--db-url sqlite:///user_data/tradesv3.sqlite \
|
||||
--userdir user_data
|
||||
|
||||
echo "✅ 策略启动完成"
|
||||
Loading…
x
Reference in New Issue
Block a user