MCPInstall

mt5-log-reader

Reads MetaTrader 5 log files to validate indicator execution, unit tests, and compilation errors. Use when user mentions Experts pane, MT5 logs, errors, or asks "did it work". Triggers - check logs, did it work, Experts pane, Print output, runtime errors, debug output. (project)

Installs
137
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/terrylica/mql5-crossover --skill mt5-log-reader
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads mt5-log-reader automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

MT5 Log Reader

Overview

Read MetaTrader 5 log files programmatically to access Print() output from indicators, scripts, and expert advisors. Implements dual logging pattern where Print() statements go to MT5 logs (human-readable) and CSV files provide structured data for validation.

When to Use

Use this skill when:

  • Validating MT5 indicator/script execution
  • Checking compilation or runtime errors
  • Analyzing Print() debug output from indicators
  • Verifying unit test results (Test_PatternDetector, Test_ArrowManager)
  • User mentions checking "Experts pane" or "log" manually
  • User asks "did it work?" or "check the output"

Log File Structure

Runtime Logs (Experts Pane)

MT5 runtime logs are stored at:

$MQL5_ROOT/Program Files/MetaTrader 5/MQL5/Logs/YYYYMMDD.log

File Format:

  • Encoding: UTF-16LE (Little Endian) - Read tool handles automatically
  • Structure: Tab-separated fields (timestamp, source, message)
  • Size: Grows throughout day (typically 10-100KB, can reach 5MB+)

Compilation Logs (Per-File)

MetaEditor creates a .log file next to each compiled .mq5:

# Example: Fvg.mq5 creates Fvg.log in the same directory
$MQL5_ROOT/Program Files/MetaTrader 5/MQL5/Indicators/Custom/Development/FVG/Fvg.log

File Format:

  • Encoding: UTF-16LE (often readable with plain cat)
  • Contains: Compilation progress, error count, warnings, timing
  • Success indicator: "0 errors, 0 warnings"

Important: Wine/CrossOver returns exit code 1 even on successful compilation. Always check the .log file or verify .ex5 exists.

Workflow

Step 1: Construct Log Path

Determine today's date and build the absolute path:

TODAY=$(date +"%Y%m%d")
LOG_FILE="$MQL5_ROOT/Program Files/MetaTrader 5/MQL5/Logs/${TODAY}.log"

Step 2: Search for Relevant Entries

Use Grep tool to filter log entries (more efficient than reading entire file):

Pattern: indicator name, "error", "ERROR", "v0\\.4\\.0", "Phase 2", etc.
Path: Log file from Step 1
Output mode: "content"
-n: true (show line numbers)
-A: 5 (show 5 lines after matches for context)

Common search patterns:

  • CCI Rising Test|CCI_Rising_Test - Find specific indicator output
  • error|ERROR|failed - Find error messages
  • v0\\.4\\.0|v0\\.3\\.0 - Find specific version output
  • Phase \\d+|Test arrow created - Find initialization messages
  • DEBUG Bar - Find calculation output

Step 3: Analyze Results

Check the grep output for:

  • Timestamps - Verify output matches expected execution time
  • Error messages - Identify specific failures with context
  • Version numbers - Confirm correct .ex5 file is loaded
  • DEBUG output - Validate calculation results
  • Test results - Verify unit test pass/fail status

Common Validation Patterns

Check indicator version loaded

After compilation, verify the new .ex5 file is loaded:

# Search for version string in recent log entries
Pattern: "v0\\.4\\.0|=== CCI Rising Test"
Output mode: content
Context: -A 2

Look for initialization message with version number and timestamp matching the reload time.

Find runtime errors

Pattern: "error|ERROR|failed|Failed"
Output mode: content
Context: -A 3 -B 1  # Show 3 lines after, 1 before

Analyze error codes (e.g., 4003 = invalid time) and error context.

Monitor calculation output

Pattern: "DEBUG Bar"
Output mode: content
Context: -A 0  # No extra context needed
-n: true  # Show line numbers

Verify calculation values are reasonable (not EMPTY_VALUE, not reversed).

Verify test arrow creation

Pattern: "Phase 2|Test arrow created|Failed to create"
Output mode: content
Context: -A 2

Check for success message with timestamp.

Large Log Files

If log file exceeds 5MB (Read tool limit):

  1. Use Grep exclusively (more efficient than reading entire file)
  2. Use time-based filtering with -A and -B context
  3. Search for specific indicator names to narrow results

Integration with Dual Logging

This skill accesses one half of the dual logging pattern:

  1. MT5 Log Files (this skill) - Human-readable Print() output
  2. CSV Files (CSVLogger.mqh) - Structured audit trails

Both are accessible programmatically without user intervention.

Security Considerations

  • Log files may contain sensitive trading data (symbol names, account info)
  • Do not expose absolute paths unnecessarily in user-facing output
  • Filter sensitive information when reporting results
  • No file modification operations allowed (read-only access)

Examples

Example 1: Verify indicator reloaded after compilation

User: "I reloaded the indicator, can you check if v0.4.0 is running?"

Action:
1. Grep for "v0\\.4\\.0|CCI Rising Test v0\\.4"
2. Check most recent match timestamp
3. Verify it's after compilation time (16:59)

Output: "Yes, v0.4.0 loaded at 17:01 on EURUSD M1 chart"

Example 2: Find why histogram is empty

User: "The last 19 bars are still empty, check the log"

Action:
1. Grep for "DEBUG Bar|CCI=" pattern
2. Look for EMPTY_VALUE or unusual values
3. Check for error messages with -A 3 context

Output: "Found 'CCI=179769313486231570...' which is EMPTY_VALUE constant. The indicator didn't calculate CCI for those bars."

Example 3: Validate calculation fix

User: "Check if the absolute value fix is working"

Action:
1. Grep for "DEBUG Bar.*\\|CCI\\|=" (looking for |CCI|= output)
2. Compare with old format "DEBUG Bar.*CCI=" (without |CCI|)
3. Check timestamp matches latest compilation

Output: "The log shows old format (no |CCI|=) at 16:56. Need to reload to get v0.4.0 from 16:59."

References

  • MT5 file locations: docs/guides/MT5_FILE_LOCATIONS.md
  • Dual logging implementation: docs/plans/cci-rising-pattern-marker.yaml Phase 3-4
  • CSVLogger library: Program Files/MetaTrader 5/MQL5/Indicators/Custom/Development/CCINeutrality/lib/CSVLogger.mqh

FAQ

What does the mt5-log-reader skill do?

Reads MetaTrader 5 log files to validate indicator execution, unit tests, and compilation errors. Use when user mentions Experts pane, MT5 logs, errors, or asks "did it work". Triggers - check logs, did it work, Experts pane, Print output, runtime errors, debug output. (project)

How do I install mt5-log-reader?

Run npx skills add https://github.com/terrylica/mql5-crossover --skill mt5-log-reader in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/mt5-log-reader/ (personal) or .claude/skills/mt5-log-reader/ (project).

Which AI agents can use mt5-log-reader?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is mt5-log-reader safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains mt5-log-reader?

It is published by terrylica in terrylica/mql5-crossover. It has 137 recorded installs.

Popular testing & qa skills

View category →

tdd

mattpocock/skills

Test-driven development. Use when the user wants to build features or fix bugs test-first, mentions "red-green-refactor", or wants integration tests.

Testing & QA1.2M installs

grilling

mattpocock/skills

Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.

Testing & QA996.2K installs

migrate-to-shoehorn

mattpocock/skills

Migrate test files from as type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace as in tests, or needs partial test data.

Testing & QA484.1K installs

run-train

lllllllama/rigorpilot-skills

Rigor Train skill for deep learning research repositories. Use when a documented or selected training command should be run conservatively for startup verification, short-run verification, full kickoff, or resume, with command, config, seed, log, checkpoint, status, and metric evidence written to standardized trainoutputs/. Do not use for environment setup, exploratory sweeps, speculative idea implementation, or end-to-end orchestration.

Testing & QA337.8K installs

test-driven-development

obra/superpowers

Use when implementing any feature or bugfix, before writing implementation code

Testing & QA261.8K installs

Use when implementation is complete, all tests pass, and you need to decide how to integrate the work

Testing & QA216.8K installs