1. Architecture & Module Connections
The system is composed of five header files included into the compiled main file _AHS_Main.ex5:
_AHS_Main.ex5
├── AHS_Inputs.mqh → All input parameters, enumerations, global state variables
├── AHS_Filters.mqh → Market filters (The Shield): Macro Matrix, Impulse, Channel, ADX/MA, SmartDI, MTF, 3Candles
├── AHS_Strategy.mqh → Multi-Core Engine: position sizing, order execution
├── AHS_Management.mqh → Position management: TSL BB, Hard BE, Neg BE, Dynamic TP, EOD Terminator
└── AHS_Panel.mqh → Graphical information panel: status, MTF dashboard, positions list
OnTick() Flow — Step by Step
Every incoming tick passes through a strictly defined sequence in the main loop:
OnTick()
1. License check (CLicenseManager.IsExpired)
2. Session schedule check (IsScheduleAllowed)
3. EOD Terminator (CheckForEODClose) → emergency close all positions
4. Daily P/L update and daily reset
5. Account Protection checks:
→ DailyLossReached? → block new orders
→ DrawdownFreeze? → block new orders
→ DailyTargetReached? → block new orders
6. Equity Trailing Lock (master equity trailing SL)
7. Institutional Impulse Detection (CheckInstitutionalImpulse)
8. Dynamic Channel Update (UpdateDynamicChannel) every X hours
9. News Filter → freeze before/after news events
10. ManageAllPositions() → manage all open positions
11. Cooldown check + position count limit check
12. EvaluateStrategies() → Multi-Core Engine searches for a signal
13. Information panel update
All stages are independent — position management (step 10) runs regardless of whether new signals are being sought (step 12). Even when new orders are blocked, open positions are always managed.
