- 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
3.8 KiB
3.8 KiB
| noteId | tags |
|---|---|
| 47f23f7027dd11f19754a37e3f6df08f |
Compilation Test Results
Test Date: 2025-10-29
Files to Compile:
-
EntrySystem_Optimised.mqh
- Location:
Modules_optimised/EntrySystem_Optimised.mqh - Status: ✅ Should compile successfully
- Expected: 0 errors, 0 warnings
- Location:
-
Test_EntrySystem_SignalFrequency.mq5
- Location:
ERMT_7x/Test_EntrySystem_SignalFrequency.mq5 - Status: ✅ Fixed include order
- Expected: 0 errors, 0 warnings
- Location:
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:
- Open any chart (e.g., EURUSD M15)
- Navigator → Scripts → Test_EntrySystem_SignalFrequency
- Drag script onto chart
- Input dialog should show:
- TestBars = 1000
- TestAllStrategies = true
- SingleStrategy dropdown with all strategies ← This confirms enum is working
- Click OK
- 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:
- Insufficient bars for testing (TestBars > available bars)
- Indicator calculation fails
- Memory issues
Solutions:
- Reduce TestBars to 500 or 200
- Check symbol has sufficient history
- Run on a symbol with good data quality (EURUSD, GBPUSD, etc.)
Next Steps After Successful Compilation:
- ✅ Run on M15 timeframe
- ✅ Run on H1 timeframe
- ✅ Run on H4 timeframe
- ✅ Compare signal frequencies
- ✅ Select best strategy for each timeframe
- ✅ Configure main EA with selected strategy
- ✅ Test on demo account
Status: Ready for compilation testing Last Updated: 2025-10-29