Kereskedési program tervezése — mit érdemes előre tudnod

Miért segít, ha előre tudod, mit szeretnél

A kereskedési program tervezése nem azzal kezdődik, hogy valaki leül megírni a kódot — azzal kezdődik, hogy a megrendelő tisztán látja, mit szeretne pontosan kapni.

Minél részletesebben megfogalmazható előre egy indikátor vagy egy kereskedési robot működése, annál kevesebb a félreértés, a visszafordulás és az utólagos módosítás — ez pedig közvetlenül az árban és a határidőben is megjelenik.

Ez nem azt jelenti, hogy mindenkinek programozói szintű tudással kellene rendelkeznie. Azt jelenti, hogy saját magának, a kereskedési ötlete szintjén kell pontosan tudnia, mit akar — a technikai megvalósítást onnantól már a fejlesztő oldja meg.


Egyedi indikátor megrendelése — mit kell tudnod előre

Ha valaki egyedi indikátor megrendelése mellett dönt, a legfontosabb, hogy tudja, mi történik az indikátor minden egyes lépésében — honnantól számol, milyen adatot használ, és milyen feltétel mellett jelez.

Egy indikátor nem „fekete doboz”: minél pontosabban leírható a felépülése, annál pontosabban reprodukálható a kívánt viselkedés.

Érdemes előre tisztázni azt is, milyen formában szeretnéd látni az eredményt a charton — vonal, hisztogram, nyilak, zónák, külön panel vagy a gyertyákra rajzolt jelölés —, és hogy a célplatform egyáltalán képes-e ezt a megjelenítést natívan megvalósítani. Nem minden vizuális elképzelés ültethető át egyformán minden platformra, ezért ezt érdemes a tervezés elején leellenőrizni, nem a kész program átadásánál felfedezni.

Fontos kérdés az is, hogy a jelek más termékek (szimbólumok) adataira is épülnek-e. Ha az indikátor logikája nem csak a saját charton lévő eszköz adatait nézi, hanem más instrumentumokét is figyeli, akkor a backteszteléshez minden felhasznált instrumentum historikus adatát le kell tölteni és elérhetővé kell tenni — ha ez hiányzik, a visszateszt eredménye megbízhatatlan vagy egyszerűen nem futtatható.


Indikátor fejlesztés előkészítése, ha más indikátorra épül

Ha a tervezett indikátor egy másik, már létező indikátorra épül — például annak kimenetét használja bemenetként —, három dolgot kell előre tisztázni:

  • Használható-e az adott indikátor a célplatformon, a kívánt formában.
  • Nem repaintel-e — vagyis a múltbeli értékei nem változnak-e meg utólag, mert ha igen, az erre épülő logika is megbízhatatlan lesz.
  • Elérhető-e a kimenete programozottan — van-e hozzá publikus buffer vagy kimeneti érték, amit egy másik program valóban le tud kérdezni, vagy csak vizuálisan jelenik meg a charton.

Van egy negyedik, gyakran elfeledett szempont: a másik indikátornak nekem, a fejlesztőnek is elérhetőnek kell lennie.

Ha egy indikátort a piactéren (marketplace) vásároltál meg, az a vásárláshoz kötött — én nem tudom egyszerűen lefuttatni vagy beépíteni a saját fejlesztésembe, hacsak nekem is nincs hozzá saját licencem. Ezt érdemes már a tervezés elején tisztázni, mert ez közvetlenül meghatározza, hogy egyáltalán megvalósítható-e a kért funkció úgy, ahogy elképzelted — vagy esetleg újra kell írni az alapul szolgáló logikát is.

Néhány további szempont, amire érdemes figyelni:

  • Buffer vs. charton elhelyezett objektum — számít, hogy a felhasznált indikátor az értékeit egy programozottan kiolvasható bufferben tárolja, vagy csak vizuálisan, charton elhelyezett objektumként (vonal, label) jeleníti meg. Az utóbbiból nem lehet megbízhatóan adatot kiolvasni egy másik programból.
  • MT4-es függvényhívási korlát — az MT4-en az iCustom() függvénynek paraméter-limitje van, ami korlátozza, hány bemeneti paramétert lehet átadni a hívott indikátornak. Ha a felhasznált indikátornak sok paramétere van, ez már a tervezés elején eldöntheti, hogy szükséges-e átalakítás.
  • Futási teljesítmény — ha a felhasznált indikátort minden egyes gyertyán, minden tick-nél újra kell hívni (különösen hosszú historikus adaton), ez jelentősen lassíthatja a teljes programot. Ha ez előre ismert, már a tervezésnél figyelembe vehető.

Ha ezekre a kérdésekre nincs kész válasz, nem gond — de minél előbb tisztázódnak, annál simábban halad a fejlesztés.


Egyedi kereskedési robot rendelése — mit kell tudnod előre

Az egyedi kereskedési robot rendelése esetén a legfontosabb három kérdés:

  • Mikor akar belépni a robot — milyen feltétel vagy feltételkombináció jelenti a belépési pontot.
  • Mikor akar kiszállni — van-e konkrét kilépési feltétel, vagy ez is ugyanazon logika fordítottja.
  • Kell-e stop management — azaz automatikus stop loss / take profit kezelés, trailing stop, részleges zárás, vagy bármilyen egyéb pozíciókezelési szabály.

Ezen túl van még néhány apróság, amire érdemes gondolni, mert sokszor ezek döntik el, mennyi munka kerül a fejlesztésbe:

  • Kötésméret-számítás módja — fix lot, egyenleg/saját tőke százaléka, vagy kockázat-alapú számítás (pl. a stop loss távolságából visszaszámolt lot méret).
  • Időszakra szűrés — csak bizonyos órákban, napokban, vagy hírek idején kerüljön ki a piacra, vagy pont ezeket kerülje.
  • Spread-figyelés — legyen-e felső spread-limit, amely felett a robot nem nyit pozíciót.
  • Egyidejű pozíciók kezelése — egyszerre csak egy nyitott pozíció engedett, vagy több is futhat párhuzamosan.

Ezek apró döntéseknek tűnhetnek, de mindegyik közvetlenül befolyásolja, mennyi logikát kell beépíteni a programba — ezért minél előbb tisztázódnak, annál pontosabb lesz az időbecslés is.

Ha ezekre pontos válasz áll rendelkezésre, a fejlesztés sokkal gyorsabban és kevesebb oda-vissza kérdezéssel halad.


A célplatform és a számlatípus

Érdemes előre tudni, melyik platformra szánod a programot (MT4, MT5, NinjaTrader, JForex, Pine Script) — ez azért fontos, mert minden programnyelvnek megvannak a saját korlátai, és ezeket a tervezés elején kell átnézni, nem a fejlesztés közben felfedezni.

Ha a cél platform MT5, érdemes előre tisztázni, hogy hedging vagy netting számlatípusban gondolkodsz — esetleg mindkettőben.

Ez nem apró részlet: a netting számlák más pozíciókezelési logikát igényelnek (pl. extra kötés-nyilvántartást pyramid-jellegű stratégiáknál), ami érdemben befolyásolja a fejlesztésbe kerülő munka mennyiségét.


Ha a stratégia csak bizonyos piaci körülmények közt működik

Sok stratégia vagy indikátor-terv nem minden piaci helyzetben viselkedik jól — például csak trendelő piacon ad megbízható jelzést. Ha ez a helyzet, nem elég annyit mondani, hogy „csak trendelő piacon működjön” — ezt programozható módon kell megfogalmazni: milyen indikátorral, mozgásmintával vagy más, pontosan definiálható feltétellel dönthető el, hogy a piac éppen trendel-e, vagy oldalaz.

Ha ez a definíció hiányzik, a programnak nincs mihez mérnie magát — és a végeredmény könnyen más lehet, mint amit elképzeltél.


Ha nem tudsz mindent előre — ez nem gond

Mindez nem azt jelenti, hogy minden választ készen kell hoznod. Ha egy ponton elakadsz, vagy nem tudod pontosan megfogalmazni, mit szeretnél, ez teljesen rendben van — ötletekkel, kérdésekkel segítek abban, hogy a kereskedési elképzelésed pontos, programozható formát kapjon.

A lényeg, hogy minél többet tudsz előre, annál gyorsabban és annál pontosabban halad a közös munka.


Kereskedési szoftver megrendelés lépései

Összefoglalva, egy kereskedési szoftver megrendelés lépései nagyjából így néznek ki:

  1. Programtípus tisztázása (indikátor vagy kereskedési robot).
  2. A működés részletes megfogalmazása (belépés, kilépés, piaci feltételek, meglévő indikátorokra való támaszkodás).
  3. Célplatform és — ha releváns — számlatípus (hedging/netting) meghatározása.
  4. Közös egyeztetés a hiányzó részletekről.
  5. Fejlesztés, tesztelés, átadás.

Ha van egy kereskedési ötleted, amit szeretnél megvalósítani — akár minden részletet pontosan tudsz, akár csak egy alapötleted van —, keress meg, és közösen felépítjük belőle a programot.