65 lines
2.1 KiB
Python
65 lines
2.1 KiB
Python
import sys
|
|
import os
|
|
import ast
|
|
|
|
# 策略文件路径
|
|
strategy_file = 'freqtrade/templates/freqaiprimer.py'
|
|
|
|
try:
|
|
# 读取文件内容
|
|
with open(strategy_file, 'r', encoding='utf-8') as f:
|
|
content = f.read()
|
|
|
|
# 检查Python语法
|
|
ast.parse(content)
|
|
print(f"✅ {strategy_file} 语法检查通过")
|
|
|
|
# 检查FreqAI相关配置
|
|
if 'freqai_info' in content:
|
|
print("✅ 包含FreqAI配置")
|
|
else:
|
|
print("❌ 未找到FreqAI配置")
|
|
|
|
if 'enabled=True' in content or 'enabled = True' in content:
|
|
print("✅ FreqAI配置为启用状态")
|
|
else:
|
|
print("❌ FreqAI配置为禁用状态")
|
|
|
|
# 检查关键方法
|
|
required_methods = ['populate_indicators', 'set_freqai_targets', 'feature_engineering_expand_basic']
|
|
for method in required_methods:
|
|
if f'def {method}' in content:
|
|
print(f"✅ 找到方法: {method}")
|
|
else:
|
|
print(f"❌ 未找到方法: {method}")
|
|
|
|
# 检查预测列处理逻辑
|
|
if 'FreqAI预测列缺失' in content:
|
|
print("✅ 包含预测列缺失处理逻辑")
|
|
else:
|
|
print("❌ 未找到预测列缺失处理逻辑")
|
|
|
|
# 检查是否定义了我们需要的目标列
|
|
target_columns = ['&-rsi_oversold', '&-rsi_overbought', '&-h1_rapid_rise_threshold']
|
|
for col in target_columns:
|
|
if col in content:
|
|
print(f"✅ 找到目标列: {col}")
|
|
else:
|
|
print(f"❌ 未找到目标列: {col}")
|
|
|
|
print("\n检查完成。语法检查通过意味着文件的Python语法没有问题。")
|
|
print("实际运行FreqAI还需要安装所有依赖并正确配置Freqtrade。")
|
|
|
|
except SyntaxError as e:
|
|
print(f"❌ 语法错误: {e}")
|
|
print(f"错误位置: 行 {e.lineno}, 列 {e.offset}")
|
|
# 显示错误行周围的代码
|
|
lines = content.split('\n')
|
|
start_line = max(0, e.lineno - 2)
|
|
end_line = min(len(lines), e.lineno + 2)
|
|
for i in range(start_line, end_line):
|
|
prefix = '> ' if i == e.lineno - 1 else ' '
|
|
print(f"{i+1:4d}{prefix}{lines[i]}")
|
|
|
|
except Exception as e:
|
|
print(f"❌ 检查失败: {e}") |