mt5-log-reader

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.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "mt5-log-reader" with this command: npx skills add terrylica/mql5-crossover/terrylica-mql5-crossover-mt5-log-reader

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):

  • Use Grep exclusively (more efficient than reading entire file)

  • Use time-based filtering with -A and -B context

  • Search for specific indicator names to narrow results

Integration with Dual Logging

This skill accesses one half of the dual logging pattern:

  • MT5 Log Files (this skill) - Human-readable Print() output

  • 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

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

python-logging-best-practices

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

clickhouse-architect

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

mlflow-python

No summary provided by upstream source.

Repository SourceNeeds Review