用途:读取 MetaTrader 5 日志文件,直接访问指标、脚本和专家顾问(EA)的 Print() 输出,避免手动检查 Experts 面板。适用于验证 MT5 指标/脚本执行、检查编译或运行时错误、分析 Print() 调试输出、验证单元测试结果(如 Test_PatternDetector、Test_ArrowManager),以及用户提到手动检查 Experts 面板时。
日志位置:$MQL5_ROOT/Program Files/MetaTrader 5/MQL5/Logs/YYYYMMDD.log。格式为 UTF-16LE(小端),制表符分隔字段(时间戳、来源、消息),文件随当天运行增长,通常 10-100KB。
使用方式:先构造当天日志路径,例如用 bash 取日期:TODAY=$(date +"%Y%m%d"),再拼接 LOG_FILE="$MQL5_ROOT/Program Files/MetaTrader 5/MQL5/Logs/${TODAY}.log"。然后用 Read 工具读取整个文件(自动处理 UTF-16LE 编码)。可选:用 Grep 按模式过滤,如指标名、"error"、"test.*passed",输出模式 content 并加 -n 显示行号,-A 5 显示后 5 行上下文;或用 Bash 执行 tail -n 50 "$LOG_FILE" 查看最新输出。
常见验证模式:检查单元测试结果可搜索 test.*passed|test.*failed|Tests Passed|Tests Failed|ALL TESTS PASSED,上下文 -B 2 -A 2;查找编译错误可搜索 error|ERROR|warning|WARNING|failed to create,上下文 -A 3;监控特定指标可搜索 CCI Rising Test|PatternDetector|ArrowManager,上下文 -A 2;查看初始化消息可搜索 OnInit|initialization|Initialization complete|Phase \d+。
限制与安全:日志可能包含敏感交易数据(品种名、账户信息),仅限使用 Read、Bash、Grep 工具,禁止网络访问(WebFetch),不得修改文件,报告结果时应过滤敏感信息并避免不必要地暴露绝对路径。该技能是双日志模式的一半,另一半为 CSV 文件(CSVLogger.mqh),可通过 Read 工具或 validate_export.py 读取。
故障排查:日志文件未找到时检查日期格式 YYYYMMDD.log 和 MQL5_ROOT 环境变量;空日志需确保 MT5 运行且调用了 Print();编码错误由 Read 工具自动处理;缺少测试结果需先在 MT5 中编译并运行测试脚本;Grep 无结果可尝试 -i 或更宽泛模式;旧日志数据因每日轮转生成新文件;路径含空格需加引号 "$LOG_FILE"。
该技能为自进化技能:若指令错误、参数漂移或需要变通方法,且问题真实可复现,应立即更新文件。