Soci (Soczó Zsolt) szakmai blogja

2010.11.07.

Az ATS működik :)

Filed under: Élet,Személyes,Tőzsde — Soczó Zsolt @ 23:41

Az utóbbi időben nagyon csendben voltam, ennek az volt az oka, hogy a sok első féléves munka után azt mondtam, hogy most már itt az ideje komolyabban venni az automatikus trading rendszer írását, és nem csak éjszakánként fejleszteni. Ez egy rengeteg erőforrást zabáló, intenzív kutatási és programolási kaland volt, ilyenkor nincs erőm/kedvem blogolni. Volt benne sok frusztráló pillanat, amikor már fel akartam adni.
De a sok munka úgy néz ki kifizetődő. :)
Közel 4 hete már élőben fut a rendszer, és azt hozza, amit a backtest ígért. %-ot, stb. szándékosan nem mondok, de jelentősen több, mint egy befektetésé. Másként minek öltem bele 2 évet?
Hogy ez mennyire stabil hosszabb távon? Ezt csak a Jóisten tudja. 319 trade történt eddig, az statisztikailag már elég jelentős, így bízok benne, hogy stabil lesz a rendszer hosszabb távon is.

Az alábbi kép pár napja készült, ami egy ritka idegbeteg nap volt, akkor jelentette be a FED, hogy 600 milliárd dollárt tol be a gazdaságba.

A 3. trade 1.5 percig tartott. :)

Jelenleg 8 future termékkel (az alapjuk deviza, stock index és állampapír), 16 egyedileg paraméterezett algoritmus példány tradel. Hosszabb távon ennél több lesz majd, hogy lehetőleg ne legyenek olyan napok, amikor szívinfarktust kapok. A 2. nap pl. ilyen volt, akkor 2000$ bukót kellett lenyelnem.
Az egész tőzsdében ez a legnehezebb, a pszichológiai rész. Egyensúlyozni a mohóság és a félelem övezte mezsgyén. Félelmetes dolog ez, igencsak megmozgatja az ember emócióit. Ezt kell persze levetkőzni, ez a lényege az egésznek. Most pénteken pl. nem sikerült, és nem indítottam el csütörtök éjszaka, csak péntek délután, annyira megégetett az előbb írt veszteség. Pedig ilyenek törvényszerűen vannak, benne vannak a backtestben is. Csak más dolog statisztikákat nézni, meg más átélni. Mellesleg jót keresett volna a kieső időben, nem volt idegbeteg nap, mint egy hónappal korábban. Ez alap hiba volt, kifizettem a tanulópénzt.
Technológiai hátterét tekintve W2k8 R2, IIS7, .NET4, EF4, WPF, WCF, SQL Server 2008 R2, SQL Reporting Services alapú a rendszer. Elképesztő sebességeket lehet elérni .NET4-gyel, csak rendes design és odafigyelés kell hozzá. Meg sok profile-ozás. :)
Az SQL Serverben 15 milliárd sor van egy táblában, és teljesen jól lehet kezelni. Ez is tervezés és indexelés kérdése.

Akit érdekel a téma, az alábbi tőzsdés könyveket ajánlom, nekem ezek segítettek:
Come Into My Trading Room: A Complete Guide to Trading
High Probability trading
The Encyclopedia of Trading Strategies
New Trading Systems and Methods
Cybernetic Trading Strategies: Developing a Profitable Trading System with State-of-the-Art Technologies
Reading Price Charts Bar by Bar: The Technical Analysis of Price Action for the Serious Trader
Technical Analysis: The Complete Resource for Financial Market Technicians (nekem az első kiadás van meg)
Quantitative Trading Strategies: Harnessing the Power of Quantitative Techniques to Create a Winning Trading Program
Quantitative Trading: How to Build Your Own Algorithmic Trading Business
High-Frequency Trading: A Practical Guide to Algorithmic Strategies and Trading Systems
Professional Stock Trading: System Design and Automation
Trading Systems That Work: Building and Evaluating Effective Trading Systems
Mechanical Trading Systems: Pairing Trader Psychology with Technical Analysis
The Evaluation and Optimization of Trading Strategies
Evidence-Based Technical Analysis: Applying the Scientific Method and Statistical Inference to Trading Signals
Short Term Trading Strategies That Work
Trade Like a Hedge Fund: 20 Successful Uncorrelated Strategies & Techniques to Winning Profits

11 Comments

  1. Szia!

    Jó látni, hogy beérett a munkád, mert így rögtön van néhány kérdésem:

    1.) Az algoritmusokat miben írod? Natúr C#/.net vagy valamilyen scriptnyelv? Ha előbbi, hogyan oldod meg az algorimus fejlesztést (újrafordítás és teljes rendszer újraindítás v. valamilyen többkomponensű framework-öt csináltál, ahol elég a heurisztikát újraindítani)?

    2.) Hogyan oldod meg a futó algoritmusok életciklus-menedzsmentjét (mi történik véletlen végtelen-ciklus esetén, vagy ha egyszerűen csak ki akarod lőni az adott programot; van -e lehetőség suspendre)?

    3.) Mi egy algoritmus “bemenete”? Egyedi kötések vagy valamilyen időre aggregált (perces, 5perces, stb) értékek? Esetleg mindkettő?

    4.) Hány bemenetet tud egy trader? Egyet, vagy többet is?

    5.) Használsz -e “intelligens” algoritmusokat (=tanítani v. tenyészteni kellett valamilyen részüket, esetleg önhangolóak)?

    +1 .) Miért future ügyleteket kötsz, amikor ezeket longra szokták venni? (esetleg az egyszerűbb árazási és risk modellek miatt?)

    Amikor elkezdem végiggondolni 1-től 5-ig a kérdéseket, mindig alábbhagy az ATS iránti érdeklődésem, mert olyan érzésem támad, hogy rendes munkával tölteni ugyanezt az időt kockázatmentesebb és profitábilisabb. Ezt hogy látod?

    Comment by Aikon — 2010.11.10. @ 19:21

  2. Aikon:
    1. C#. Fejlesztéskor mindent újraindítok, de (.NET 4) Shared memoryban vannak az adatok, így gyors a talpra állás.
    2. Minden állapotváltozás után (order beküldés, végrehajtás, stb.) minden fontos állapotot rögzítek adatbázisba (POCOk & EF). Így bármikor le lehet állítani és újra lehet indítani a programot, onnan folytatja, ahol abbahagyta. Összevetem a letárolt állapotokat és a brokernél levő tényleges helyzetet, és ennek megfelelően lerendezem az állapotinfókat, lezárom a tradeket, stb.
    3. Aggregált bárok.
    4. Akármennyi és akármilyen fajta bárokat (time, volume, momentum, stb.) és minden ticket is, ha érdekli.
    5. Az optimalizálást genetikus algoritmussal csinálom, sebesség okokból. Azaz tenyésztem őket. Az algok ATR használata miatt adaptálódnak a volatilitáshoz.
    +1. Future long? Ezt nem értem. Alapvetően a leverage miatt kellenek a future-ök. Hosszabb távon lesz stock és forex is.

    Elképesztően nagy munka egy ATS, ez tény. De nagyon érdekes is.
    Ami miatt én belevágtam:
    a. Szemben a normál munkával itt skálázható a bevétel.
    b. Szakmailag és intellektuálisan nem találtam nagyobb kihívást.

    Comment by Soczó Zsolt — 2010.11.11. @ 13:16

  3. Kedves Soczó,

    Ez a 15 milliárd sor érdekelne… Valóban ennyi sort raktál egy táblába?
    Huhhh… még belegondolni is rémes.

    Üdv,

    – Rere

    Comment by Rere — 2010.11.17. @ 07:57

  4. Igen, 15*10^9 sor van benne, illetve azóta már 17.

    Comment by Soczó Zsolt — 2010.11.17. @ 17:42

  5. Riszpekt a beletett munkáért és a kitartásodért.
    Időnként (fél évente pl.) beszámolhatnál, hogy hogyan megye a dolog.. És nem csak az eredményességre, hanem a beletett munkamennyiségre, szívásokra is gondolok..

    Remélem bejön Neked a dolog!

    Üdv,
    Ambrus

    Comment by Ambrus — 2010.11.26. @ 13:26

  6. Szia!

    A longos kérdés feltételekor bele sem gondoltam, hogy ats-t egyből tőkeáttéttel dolgoztatod.

    A sikereiden felbuzdulva újra nekiálltam a saját rendszernek, bár egészen más irányból és technikákkal. A végrehajtó-részek c++ + script motorral (lua), adatkiszolgálás java+spring+postgres, frontendről fogalmam sincs még, kommunikációra message queue, az algoritmus programozás és konfigurálás pedig (c++ és luán túl) vizuális nyelven történne (LabView-szerűen). Ebben az a poén, hogy elég természetesen párhuzamosítható.

    Igazából rájöttem, hogy felesleges addig olyan kérdésekkel foglalkozni, mint pl. honnan lesz bemenő adata a rendszernek, amíg nincs annyira kész, hogy ezzel kelljen foglalkozni. Apránként haladva nem is tűnik az egész olyan komplexnek :).

    Mielőtt sok sikert kívánok a rendszeredhez, megkérdezném, hogy a linkelt könyveken túl találtál olyan fórumot/helyet, ahol ilyesmivel foglalkoznak? Sok nem technikai kérdés felmerül (pl. adatforrások kérdése), érdekelne mások tapasztalata.

    Üdv,
    Aikon

    Comment by Aikon — 2010.12.07. @ 21:48

  7. Az elitetraders és a traderslaboratory nem rossz fórum. Amúgy google. :)

    Comment by Soczó Zsolt — 2010.12.17. @ 12:07

  8. Szia Soczó,

    gratulálok az ATS-hez!
    Teljesen egyedül fejlesztetted?
    Hány mérnökórát raktál bele?

    Üdv,
    Eye

    Comment by Eye — 2011.01.18. @ 20:35

  9. Nem teljesen egyedül, csak 95%-ban.
    Legalább háromnegyed év tiszta munka van benne.

    Comment by Soczó Zsolt — 2011.01.21. @ 01:27

  10. Szia, azota hogyan alakul a project?
    Tervezel esetleg ujabb posztot az ATS-sel kapcsolatban?
    Mostanaban mennyit foglalkozol vele? Van mit fejleszteni rajta, vagy varod az eredmenyeket, es utana haladsz tovabb?
    Udv,
    Eye

    Comment by Eye — 2011.03.02. @ 17:20

  11. Most áll, írom a 2.0-t (illetve dolgozok cégeknek). Túl nagy volt a DD-ja, és túl törékeny volt, érzékeny az adatkimaradásokra.

    Comment by Soczó Zsolt — 2011.03.03. @ 19:54

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

Powered by WordPress