2. Multi-Core Strategy Engine — „kto pierwszy ten lepszy”
Jest to najważniejsza innowacja systemu. Wbrew nazwie sugerującej jedną strategię, AHS to silnik z wymiennymi rdzeniami strategii, gdzie każda strategia może jednocześnie pełnić dwie role:
| Rola | Parametr | Opis |
|---|---|---|
| Trigger (wyzwalacz) | _As_Strategy = true | Strategia GENERUJE sygnał transakcyjny |
| Validator (walidator) | _As_Filter = true | Strategia POTWIERDZA sygnały innych |
Zasada „kto pierwszy ten lepszy” (First-Come-First-Served)
Strategie są ewaluowane sekwencyjnie w stałej kolejności:
EvaluateStrategies()
1. Smart DI (jeśli As_Strategy=true) → sygnał? → filtry → zlecenie → RETURN
2. MTF Point System (jeśli As_Strategy=true) → sygnał? → filtry → zlecenie → RETURN
3. 3 Consecutive Candles (jeśli As_Strategy=true) → sygnał? → filtry → zlecenie → RETURN
Kluczowe znaczenie: Gdy strategia nr 1 (Smart DI) wygeneruje sygnał i przejdzie przez wszystkie filtry, system natychmiast otwiera zlecenie i wychodzi z funkcji (return). Strategie 2 i 3 nie są już w tym ticku sprawdzane. Nie ma głosowania, uśredniania ani konsensusu — pierwszy ważny sygnał wygrywa.
Każda strategia sprawdzana jest tylko raz na nowy bar (na własnym timeframie), co eliminuje wielokrotne sygnały wewnątrz tej samej świecy.
Możliwe konfiguracje
- SmartDI jako trigger, MTF+3Candles jako filtry — SmartDI daje sygnał, ale muszą go potwierdzić oba pozostałe systemy
- Wszystko jako trigger — trzy niezależne strategie rywalizują o otwarcie zlecenia
- MTF jako trigger, SmartDI jako filter — MTF generuje, SmartDI potwierdza
- Dowolna kombinacja — każda strategia może być włączona/wyłączona niezależnie w obu rolach
Walidator nie weryfikuje samego siebie
Inteligentna logika: strategia X działając jako filtr NIE waliduje sygnałów własnych. Przykład: jeśli SmartDI jest wyzwalaczem, filtr SmartDI jest pomijany (nie sprawdza sam siebie) — sprawdzane są tylko filtry MTF i 3Candles.
// Walidator pomija własne źródło
if (Inp_SmartDI_As_Filter && trigger_source != "SmartDI") {
if (!CheckSmartDI_Condition(is_buy)) return false;
}
