mql5/Experts/Advisors/ERMT_PMEx/Guides/COMPILATION_FIXES.md

2.5 KiB

Compilation Fixes Applied

Issues Fixed

1. Reserved Keyword Error - "protected"

Problem:

'protected' is a reserved keyword in MQL5 and cannot be used as a variable name

Location: ERMT_PME_1.2.mq5:985

Original Code:

double protected, peak, retracement;
g_profit_max.GetProtectionStatus(ticket, protected, peak, retracement);

if(protected > 0)
{
    locked_positions++;
    total_locked_profit += protected;
}

Fixed Code:

double protected_profit, peak_profit, retracement_pct;
g_profit_max.GetProtectionStatus(ticket, protected_profit, peak_profit, retracement_pct);

if(protected_profit > 0)
{
    locked_positions++;
    total_locked_profit += protected_profit;
}

Status: Fixed


2. Type Conversion Warning

Problem:

possible loss of data due to type conversion from 'long' to 'int'

Location: PositionManager_PME_Complete.mqh:562

Original Code:

long deal_reason = HistoryDealGetInteger(deal_ticket, DEAL_REASON);
switch(deal_reason)

Fixed Code:

long deal_reason = HistoryDealGetInteger(deal_ticket, DEAL_REASON);
switch((int)deal_reason)  // Explicit cast to int

Status: Fixed


Verification

Files Modified

  1. ERMT_PME_1.2.mq5 - Fixed reserved keyword usage
  2. Modules_PME/PositionManager_PME_Complete.mqh - Fixed type conversion

Expected Compilation Result

0 errors, 0 warnings
ERMT_PME_1.2.ex5 generated successfully

MQL5 Reserved Keywords Reference

For future reference, these keywords cannot be used as variable names in MQL5:

Access Modifiers:

  • public
  • private
  • protected
  • virtual

Common Reserved Words:

  • class
  • struct
  • enum
  • template
  • typename
  • this
  • delete
  • new
  • operator
  • const
  • static

Always use descriptive suffixes when naming variables to avoid conflicts:

  • protected
  • protected_profit
  • is_protected
  • protection_level

Next Steps

  1. Recompile EA:

    - Open MetaEditor
    - Compile ProfitMaximizer_PME.mqh
    - Compile PositionManager_PME_Complete.mqh
    - Compile ERMT_PME_1.2.mq5
    - Verify: 0 errors
    
  2. Test on Chart:

    - Attach EA to chart
    - Check initialization logs
    - Verify dashboard displays
    - Test with demo positions
    
  3. Monitor for:

    • Phase transitions
    • Lock applications
    • Dashboard updates
    • Log messages

Fixes applied: 2025 Ready for compilation