From 32089fbf18dd31e0ac7f9ce435a0e022fa066f17 Mon Sep 17 00:00:00 2001 From: "zhangkun9038@dingtalk.com" Date: Sun, 17 Aug 2025 00:34:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E6=AE=B5=E9=95=BF=E5=BA=A6=E7=94=A8fr?= =?UTF-8?q?eqai=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- freqtrade/templates/freqaiprimer.py | 31 +++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/freqtrade/templates/freqaiprimer.py b/freqtrade/templates/freqaiprimer.py index de463c7b..d195f4cf 100644 --- a/freqtrade/templates/freqaiprimer.py +++ b/freqtrade/templates/freqaiprimer.py @@ -1448,10 +1448,16 @@ class FreqaiPrimer(IStrategy): predicted_length = int(predictions['trend_segment_length']) # 确保在有效范围内 predicted_length = max(1, min(5, predicted_length)) - logger.info(f"[{pair}] FreqAI预测段长: {predicted_length} (比例: {predicted_length},{predicted_length*3},{predicted_length*5})") + logger.info(f"[{pair}] FreqAI预测段长: {predicted_length} (比例: {predicted_length}:{predicted_length*3}:{predicted_length*5})") + logger.info(f"[{pair}] FreqAI预测详情 - " + f"第一段长度: {predicted_length}, " + f"第二段长度: {predicted_length*3}, " + f"第三段长度: {predicted_length*5}, " + f"总分析周期: {predicted_length + predicted_length*3 + predicted_length*5}") return predicted_length else: logger.warning(f"[{pair}] FreqAI未返回段长预测,使用默认段长2") + logger.info(f"[{pair}] 使用默认段长 - 第一段长度: 2, 第二段长度: 6, 第三段长度: 10, 总分析周期: 18") return 2 except Exception as e: @@ -1573,6 +1579,27 @@ class FreqaiPrimer(IStrategy): # 设置最优段长 dataframe.loc[dataframe.index[current_idx], "&-trend_segment_length"] = float(best_length) + + # 输出具体的最优段长结果 + logger.info(f"[{pair}] 最优趋势分段长度计算完成 - " + f"第一段长度: {best_length}, " + f"第二段长度: {best_length*3}, " + f"第三段长度: {best_length*5}, " + f"总长度: {best_length + best_length*3 + best_length*5}, " + f"最佳得分: {best_score:.4f}") - logger.info(f"[{pair}] 最优趋势分段长度计算完成") + # 计算统计信息并输出 + segment_lengths = dataframe["&-trend_segment_length"].dropna() + if len(segment_lengths) > 0: + length_counts = segment_lengths.value_counts() + logger.info(f"[{pair}] 趋势分段长度统计:") + for length in sorted(length_counts.index): + count = length_counts[length] + percentage = (count / len(segment_lengths)) * 100 + logger.info(f"[{pair}] 段长{int(length)}: {count}次 ({percentage:.1f}%) - 比例 {int(length)}:{int(length*3)}:{int(length*5)}") + + avg_length = segment_lengths.mean() + logger.info(f"[{pair}] 平均段长: {avg_length:.2f}") + + logger.info(f"[{pair}] 最优趋势分段长度计算完成,共计算 {len(segment_lengths)} 个数据点") return dataframe