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_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)
|
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.buy_threshold = labels_mean - k_buy * labels_std
|
||||||
self.sell_threshold = labels_mean + k_sell * labels_std
|
self.sell_threshold = labels_mean + k_sell * labels_std
|
||||||
|
|
||||||
@ -1347,9 +1360,8 @@ class FreqaiPrimer(IStrategy):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
# 使用分类模型预测最优 first_length
|
# 使用分类模型预测最优 first_length
|
||||||
if "&*-optimal_first_length" in dataframe.columns:
|
if "optimal_first_length_pred" in dataframe.columns:
|
||||||
# 获取最新预测值
|
predicted_value = dataframe["optimal_first_length_pred"].iloc[-1]
|
||||||
predicted_value = dataframe["&*-optimal_first_length"].iloc[-1]
|
|
||||||
if pd.notna(predicted_value):
|
if pd.notna(predicted_value):
|
||||||
optimal_length_class = int(predicted_value)
|
optimal_length_class = int(predicted_value)
|
||||||
length_mapping = {0: 2, 1: 4, 2: 6, 3: 8, 4: 10}
|
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})")
|
logger.info(f"[{pair}] ✅ 分类模型预测成功: first_length={first_length} (类别: {optimal_length_class})")
|
||||||
else:
|
else:
|
||||||
first_length = 2 # 保持默认值为2
|
first_length = 2 # 保持默认值为2
|
||||||
logger.warning(f"[{pair}] ⚠️ 分类模型预测为NaN,使用默认值: {first_length}")
|
logger.warning(f"[{pair}] ⚠️ 分类模型预测值为NaN,使用默认值: {first_length}")
|
||||||
else:
|
else:
|
||||||
first_length = 2 # 保持默认值为2
|
first_length = 2 # 保持默认值为2
|
||||||
logger.warning(f"[{pair}] ❌ 分类模型列不存在,使用默认值: {first_length}")
|
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}")
|
|
||||||
|
|
||||||
# 根据 first_length 动态调整其他段长
|
# 根据 first_length 动态调整其他段长
|
||||||
second_length = first_length * 3
|
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