用途:该技能面向 MetaTrader 5(MT5)与 Python 之间的对接,主要用于从 MT5 导出市场数据或指标数值、把 MQL5 指标翻译成 Python 实现、以及对 Python 指标结果与 MQL5 参考值进行精度校验,也用于排查常见翻译问题。触发场景包括 MQL5、MetaTrader、指标翻译、Python 校验、数据导出等。
主要能力:其一为自动化无界面行情数据导出,状态标为 PRODUCTION,已验证相关系数 0.999920。可获取任意品种与时间周期的 OHLCV 数据以及内置指标 RSI、SMA,通过 Wine Python 加 MetaTrader5 API 实现真正的无界面运行,支持冷启动,无需 GUI 初始化;5000 根 K 线约需 6 至 8 秒。其二为翻译后的验证驱动迭代,以相关系数不低于 0.999 作为工作门槛。
使用方式:需设置 CrossOver bottle 与 WINEPREFIX 环境变量后调用 Wine 中的 Python 脚本,命令保持原样如下:
CX_BOTTLE="MetaTrader 5"
WINEPREFIX="$HOME/Library/Application Support/CrossOver/Bottles/MetaTrader 5"
wine "C:\Program Files\Python312\python.exe"
"C:\users\crossover\export_aligned.py"
--symbol EURUSD --period M1 --bars 5000
项目根目录为 ~/Library/Application Support/CrossOver/Bottles/MetaTrader 5/drive_c。更详细内容可参考 /docs/guides/WINE_PYTHON_EXECUTION.md 等文档。
限制:无法通过 Python API 访问自定义指标缓冲区,该限制来自 API;自定义指标需改用 MT5 导出 CSV。常见问题包括未安装 CrossOver/Wine 导致找不到 Wine Python、MT5 未运行导致 API 连接失败、指标预热期或计算不一致导致相关性低于 0.999、Windows 路径编码引发 UnicodeDecodeError(建议使用原始字符串)、品种名格式错误(须用 MT5 精确符号名,如 EURUSD 而非 EUR/USD)、请求 K 线过多导致超时(默认 5000 较安全)、WINEPREFIX 不正确导致权限拒绝。该技能为自演化技能,应在出现真实且可复现的问题时立即修正说明与参数。