mql5/Experts/Advisors/ERMT_7x/Guides/COMPILATION_TEST.md
darashikoh 0e9fdab53a feat(ermt-2x): consolidate 2.1+2x optimisation updates and add 2.2 source
- merge 2.1 optimisation work into 2x line

- add ERMT_PME_2.2_M5.mq5 source

- include ERMT PMEx code updates in 2.1 file and core modules

- include project knowledge/design documentation updates

- exclude logs, snapshots, and chart/profile noise from commit
2026-03-25 00:31:09 +00:00

3.8 KiB

noteId tags
47f23f7027dd11f19754a37e3f6df08f

Compilation Test Results

Test Date: 2025-10-29

Files to Compile:

  1. EntrySystem_Optimised.mqh

    • Location: Modules_optimised/EntrySystem_Optimised.mqh
    • Status: Should compile successfully
    • Expected: 0 errors, 0 warnings
  2. Test_EntrySystem_SignalFrequency.mq5

    • Location: ERMT_7x/Test_EntrySystem_SignalFrequency.mq5
    • Status: Fixed include order
    • Expected: 0 errors, 0 warnings

Fix Applied:

Issue:

declaration without type - Line 15
undeclared identifier 'ENUM_ENTRY_MODE'

Root Cause:

Input parameters were declared BEFORE the include files that define ENUM_ENTRY_MODE.

Solution:

Moved #include statements to appear BEFORE input parameter declarations.

Before:

input ENUM_ENTRY_MODE SingleStrategy = ENTRY_MA_CROSS;

#include "../Modules_optimised/EntrySystem_Optimised.mqh"

After:

#include "../Modules_optimised/Datatypes_Optimised.mqh"
#include "../Modules_optimised/EntrySystem_Optimised.mqh"

input ENUM_ENTRY_MODE SingleStrategy = ENTRY_MA_CROSS;

Compilation Steps:

Method 1: MetaEditor

1. Open MetaEditor
2. File → Open → Navigate to:
   MQL5/Experts/Advisors/ERMT_7x/Test_EntrySystem_SignalFrequency.mq5
3. Press F7 (Compile)
4. Check Output tab
5. Expected: "0 error(s), 0 warning(s)"

Method 2: Via Terminal

1. Open MetaTrader 5 Terminal
2. Navigator → Scripts
3. Right-click on Test_EntrySystem_SignalFrequency
4. Select "Compile"
5. Check Journal/Experts tab for results

Expected Compiler Output:

Test_EntrySystem_SignalFrequency.mq5
   0 error(s), 0 warning(s)
   Code successfully compiled.

If Errors Persist:

Error: "Cannot open include file"

Check:

  • File paths are correct relative to script location
  • EntrySystem_Optimised.mqh exists in ../Modules_optimised/
  • TechnicalAnalysis_Optimised.mqh exists in Modules_optimised/

Solution: Verify file structure:

MQL5/Experts/Advisors/
├── Modules_optimised/
│   ├── Datatypes_Optimised.mqh
│   ├── EntrySystem_Optimised.mqh
│   └── [other modules]
└── ERMT_7x/
    ├── Modules_optimised/
    │   └── TechnicalAnalysis_Optimised.mqh
    └── Test_EntrySystem_SignalFrequency.mq5

Error: "Undeclared identifier"

Check:

  • Includes are in correct order (Datatypes first)
  • All enum types are defined in Datatypes_Optimised.mqh

Post-Compilation Test:

Once compiled successfully:

  1. Open any chart (e.g., EURUSD M15)
  2. Navigator → Scripts → Test_EntrySystem_SignalFrequency
  3. Drag script onto chart
  4. Input dialog should show:
    • TestBars = 1000
    • TestAllStrategies = true
    • SingleStrategy dropdown with all strategies ← This confirms enum is working
  5. Click OK
  6. Check Experts tab for output

Success Indicators:

Script compiles without errors Input dialog shows strategy dropdown Script runs and produces output All 7 strategies are tested Report is generated


Troubleshooting:

If script compiles but crashes on run:

Possible Causes:

  1. Insufficient bars for testing (TestBars > available bars)
  2. Indicator calculation fails
  3. Memory issues

Solutions:

  1. Reduce TestBars to 500 or 200
  2. Check symbol has sufficient history
  3. Run on a symbol with good data quality (EURUSD, GBPUSD, etc.)

Next Steps After Successful Compilation:

  1. Run on M15 timeframe
  2. Run on H1 timeframe
  3. Run on H4 timeframe
  4. Compare signal frequencies
  5. Select best strategy for each timeframe
  6. Configure main EA with selected strategy
  7. Test on demo account

Status: Ready for compilation testing Last Updated: 2025-10-29