A legtöbb algoritmikus kereskedő leragad a klasszikus indikátoroknál (RSI, MACD) vagy az egyszerűbb neurális hálóknál. De mi történik, ha azt az architektúrát hívjuk segítségül, ami a ChatGPT-t is sikeressé tette? Ebben a posztban bemutatom a DirectionalTransformer projektet, ahol egy több idősíkos (MTF), figyelem-alapú (Attention) modellt tanítottam meg az arany (XAU/USD) mozgásának előrejelzésére.
A koncepció: Miért pont a Transformer?
A pénzügyi adatok legnagyobb kihívása a kontextus. Nem csak az számít, hogy most hol az ár, hanem az is, hogy mi történt az elmúlt 60 gyertyában, és hogyan viszonyul ez a nagyobb (H1, H4, D1) trendekhez. A Transformer Self-Attention mechanizmusa képes arra, hogy súlyozza a múltbeli események fontosságát, így felismerve azokat a mintázatokat, amik egy komolyabb elmozdulás előtt alakulnak ki.
A modell architektúrája:
- Bemenet: 60 időlépésnyi (SEQ_LEN) ablak, 48 különböző feature-rel (M30-tól D1-ig).
- Positional Encoding: Mivel a Transformer nem tudja alapból, mi a sorrend, szinuszos kódolással adjuk meg az időbeli helyzetet.
- Multi-Head Attention: A modell egyszerre figyel a volatilitásra, a trendirányra és a szezonalitásra.
- Dual Head: A hálózat két dolgot jósol egyszerre:
- Volatilitás (Target Vol): Lesz-e egyáltalán érdemi elmozdulás?
- Irány (Target Dir): Ha igen, merre?
Feature Engineering: Több idősík ereje
Egy profi trader sosem csak egy chartot néz. A programom is így tesz. A feature.py modul nemcsak az M30-as adatokat dolgozza fel, hanem „belehúzza” a magasabb idősíkok (H1, H4, D1) állapotát is:
- M30: Belépési szignálok, Bollinger-szalagok, RSI, ADX.
- H1/H4: Trend-megerősítés (EMA50/200 kereszteződések).
- D1: Hosszú távú „bias” – merre fúj a passzátszél?
Ezeket az adatokat normalizáljuk, hogy a neurális háló ne vesszen el a nyers számok (pl. 2000 dolláros aranyár vs. 30-as RSI) között.
Tanítás és Walk-Forward Validáció
A leggyakoribb hiba az MI alapú kereskedésben a túltanulás (overfitting). Ha egy modellre ráeresztjük a 2010-2026-os adatokat, az „megjegyzi” a múltat, de elbukik a jövőben.
Ezt elkerülendő Walk-Forward módszert használtam:
- Tanítunk 24 hónap adaton.
- Tesztelünk a következő 3 hónapon (amit a modell sosem látott).
- Ezt toljuk előre az időben.
A szigorúság jegyében beépítettem egy AUC szűrőt (0.70). Ha a modell bizonytalan a tanítási fázisban, abban a periódusban egyszerűen nem engedjük kereskedni.
Kockázatkezelés: A túlélés záloga
A kód lelke nemcsak a jóslat, hanem a védekezés. A transormer_model.py-ban implementáltam egy dinamikus kockázatkezelési algoritmust:
- Drawdown védelem: Ha a tőke 3%-ot esik, a kockázat elkezd csökkenni. 15% tőkevesztésnél a bot automatikusan leáll.
- Konfidencia skálázás: Minél biztosabb a modell a jóslatban (prob_dir távolsága a 0.5-től), annál nagyobb pozíciót enged meg (a limiteken belül).
„A kereskedés nem a profitról szól, hanem a kockázat menedzseléséről. A profit ennek a mellékterméke.”
Eredmények és Következő lépések
A backtestek biztatóak: a modell képes kiszűrni a „zajos” időszakokat, és a Bollinger squeeze breakoutokkal kombinálva hatékonyan találja meg a kitöréseket. A Sharpe-ráta és a Profit Factor a legtöbb időszakban 1.0 felett maradt a tesztek során.
Mi következik most? A kód már készen áll az éles bevetésre a MetaTrader 5 terminálon keresztül (mt5_live.py). A modell fut, figyeli az M30-as gyertyákat, és kezeli a Trailing Stoppokat.
Az éles tesztekkel majd jelentkezem, ha meglesznek.
