1. Architektura i powiązania modułów
System składa się z pięciu plików nagłówkowych dołączanych do skompilowanego pliku głównego _AHS_Main.ex5:
_AHS_Main.ex5
├── AHS_Inputs.mqh → Wszystkie parametry wejściowe, enumeracje, zmienne globalne stanu
├── AHS_Filters.mqh → Filtry rynkowe (The Shield): Macro Matrix, Impulse, Channel, ADX/MA, Smart DI, MTF, 3Candles
├── AHS_Strategy.mqh → Multi-Core Engine: kalkulacja wielkości pozycji, wykonanie zlecenia
├── AHS_Management.mqh → Zarządzanie pozycjami: TSL BB, Hard BE, Neg BE, Dynamic TP, EOD Terminator
└── AHS_Panel.mqh → Graficzny panel informacyjny: status, MTF dashboard, lista pozycji
Przepływ OnTick() — krok po kroku
Każdy napływający tick przez główną pętlę EA przechodzi przez ściśle określoną sekwencję:
OnTick()
1. Sprawdzenie licencji (CLicenseManager.IsExpired)
2. Sprawdzenie harmonogramu sesji (IsScheduleAllowed)
3. EOD Terminator (CheckForEODClose) → awaryjne zamknięcie wszystkich pozycji
4. Aktualizacja dziennego P/L i reset dzienny
5. Sprawdzenie Account Protection:
→ DailyLossReached? → blokada nowych zleceń
→ DrawdownFreeze? → blokada nowych zleceń
→ DailyTargetReached? → blokada nowych zleceń
6. Equity Trailing Lock (master equity trailing SL)
7. Institutional Impulse Detection (CheckInstitutionalImpulse)
8. Dynamic Channel Update (UpdateDynamicChannel) co X godzin
9. News Filter → blokada przed/po newsach
10. ManageAllPositions() → zarządzanie wszystkimi otwartymi pozycjami
11. Sprawdzenie warunku cooldown + limitu pozycji
12. EvaluateStrategies() → Multi-Core Engine szuka sygnału
13. Aktualizacja panelu informacyjnego
Wszystkie etapy są niezależne — zarządzanie pozycjami (krok 10) działa niezależnie od wyszukiwania sygnałów (krok 12). Oznacza to, że nawet jeśli nowe zlecenia są zablokowane, otwarte pozycje są zawsze zarządzane.