Tartalom

Egyedi kereskedési szoftver

A kereskedési robot programozás bemutatásához egy egyszerű, de működőképes forex stratégia programozási megoldást mutatok be több platformon: MQL4, MQL5, NinjaScript és JForex környezetben egyaránt.
A választott stratégia szándékosan egyszerű — a hangsúly nem a bonyolult logikán van, hanem azon, hogy ugyanaz a gondolat hogyan ölt testet négy különböző fejlesztői környezetben, négy különböző szintaxissal és programozási szemlélettel.
Minden platformhoz tartozik egy indikátor programozási példa és egy Expert Advisor (vagy az adott platform megfelelője), amelyek együtt alkotnak egy teljes, futtatható rendszert.
Az indikátor végzi a számítást és a jelzést, az EA vagy stratégia pedig a tényleges kereskedési döntést hajtja végre: pozíciót nyit, zár, vagy éppen vár.
Ez a kétkomponensű felépítés nem véletlenszerű — a valódi fejlesztési munkában is jellemzően így célszerű szétválasztani a logikát és a végrehajtást, mivel ez átláthatóbb, könnyebben tesztelhető és karbantartható kódot eredményez.
A cél nem a programozás oktatása. Ha valaki még sosem írt kódot, ez az oldal nem fogja megtanítani rá — és nem is ez a szándék.
Miért ezt a formát választottam?
Aki már dolgozott valamelyik kereskedési platformon MetaTrader programozóként vagy NinjaTrader programozóként, vagy egyszerűen kíváncsi arra, hogyan néz ki ugyanaz a logika különböző fejlesztői környezetekben megírva, annak ez az összeállítás hasznos kiindulópont lehet.
Az alapvető programozási fogalmakat — típusok, változók, függvénydefiníciók, vezérlési szerkezetek — nem magyarázom el, ezek ismerete előfeltétel.
Angol kód, univerzális olvashatóság
A kereskedési szoftverek fejlesztésének nyelve az angol. Ez nem stílusbeli döntés, hanem gyakorlati realitás: a platformok dokumentációja, a közösségi fórumok, a könyvtárak és az API-k mind angolul működnek.
Ennek megfelelően a kódokban szereplő változónevek, függvénynevek és kommentek is angolul szerepelnek — így a példák bármely fejlesztő számára olvashatók, függetlenül attól, hogy honnan érkezik az oldalra.
Ahol azonban a kód egyes részeit részletesen kibontom és magyarázom, ott a leírás magyarul olvasható.
Működőképes indikátor és stratégia programozás – de nem teljes
A bemutatott programok önmagukban futtathatók és a bemutatott kereskedési robot programozási logikát valóban végrehajtják. Ugyanakkor tudatosan nem tartalmazzák azokat a biztonsági, hibakezelési és kényelmi megoldásokat, amelyek a saját fejlesztési csomagom részét képezik — és amelyeket az ügyfeleim számára készített rendszerekben alkalmazok.
Ez a különbség nem elhanyagolható. Egy éles kereskedési környezetben a megbízható működéshez szükség van például részletes hibakezelésre, lotméret-validálásra, slippage-kezelésre, kapcsolatvesztés utáni újracsatlakozásra és számos más megoldásra, amelyek egy egyszerű bemutató kódban szükségtelenül bonyolítanák a képet.
Néhány példa arra, ami a bemutatott kódokból tudatosan kimaradt:
Lotméret-validálás: a bróker által engedélyezett minimum és maximum lotméret ellenőrzése, valamint a lotstep szerinti kerekítés — enélkül az EA bizonyos számlakonfigurációkon hibával leállhat.
Slippage-kezelés: piaci megbízás leadásakor az ár elcsúszhat a kért szinthez képest. A produkciós kódban ez pontosan szabályozott, a példákban nincs kezelve.
Kapcsolatvesztés utáni állapot-ellenőrzés: ha a platform újraindul vagy megszakad a kapcsolat a szerverrel, a robot nem tudja automatikusan rekonstruálni az előző állapotát — ez külön logikát igényel.
Margin-ellenőrzés: új pozíció nyitása előtt ellenőrizni kell, hogy a szabad fedezet elegendő-e. Enélkül a kereskedési robot programozás során egy rosszul méretezett pozíció margin callt okozhat.
Ezek a megoldások nem bonyolultak, de megírásuk tapasztalatot és gondos tesztelést igényel. A Példatár célja az, hogy az adott platform logikáját és szintaxisát mutassa meg tisztán — a robusztus, éles környezetbe szánt megvalósítás ennél jóval több réteget tartalmaz.
Ha olyan rendszerre van szükséged, amely ezeket a szempontokat is figyelembe veszi, a Kapcsolat oldalon érhetsz el.
UniPulse Csomag
A fenti elvek gyakorlati megvalósítása: egy saját, éles kereskedésben is használható indikátor–stratégia páros, amely bemutatja, hogyan épül fel egy valóban robusztus rendszer a demókódokon túl.
Indikátor
Az UniPulse nem egyszerű trendjelző: két, egymástól független logikai réteget épít egymásra, hogy csak akkor adjon vételi vagy eladási jelzést, amikor a piaci mozgástér ezt valóban alátámasztja.
A cél nem a minél több jelzés, hanem a lapos, alacsony volatilitású szakaszok kiszűrése — pont azok, amik a legtöbb kezdő kereskedőt megégetik.
Stratégia
Az UniPulse EA a lehető legletisztultabb logikát valósítja meg: az indikátor nyitó jelére pozíciót nyit, záró jelére zárja azt.
A lotméretet, valamint a stop-loss és take-profit szinteket szabadon beállíthatod a chart- és a számlád tulajdonságaihoz igazítva.
Nincs benne felesleges bonyolultság — csak egy pontosan, hibátlanul megírt alaprendszer, amit nyugodtan vehetsz kiindulópontnak egy saját fejlesztéshez.
Jogi megjegyzés
A Példatárban közzétett kódok szabadon tanulmányozhatók és felhasználhatók, azonban a megvalósítás szerzői jogilag az uniprog.hu oldal tulajdona. Kereskedelmi célú felhasználás vagy továbbértékesítés kizárólag előzetes írásbeli egyeztetés alapján lehetséges.
Hasznos linkek
- MQL5.com — a MetaQuotes hivatalos dokumentációja
- NinjaTrader Help Guide — NinjaTrader hivatalos dokumentáció
A Példatár tartalma folyamatosan bővül. Ha éppen nem találod, amit keresel, érdemes később visszanézni — a programok és a hozzájuk tartozó leírások folyamatosan kerülnek ki az oldalra.





