WebSocket API v1 – Hogyan tartsunk fenn egy érvényes order bookot

Utolsó frissítés: 2025. április 1.

A WebSocket API v1 order book feed biztosítja az összes piaci adatot, amely szükséges egy Kraken order book helyi másolatának fenntartásához.

Például az XBT/USD order book feed felhasználható a Bitcoin/US Dollar devizapárunk order bookjának lekérésére és fenntartására, pontosan úgy, ahogy az order book megjelenik a kereskedési platformunkon.

Az order book feed biztosítja az aktuális order book kezdeti pillanatképét, majd valós időben streameli az order book frissítéseit, így az order book feeden keresztül fenntartott order book mindig naprakész lesz.

Az order book feed JSON formátumának teljes részletei elérhetők a WebSocket API v1 dokumentációnkban.

Order Book pillanatkép

Az order book feedre való feliratkozás után az első piaci adatüzenet az aktuális order book pillanatképe lesz.

Az order book pillanatkép tartalmazza a teljes order bookot a kért (feliratkozott) mélységig, például az XBT/USD order book következő példája 10-es mélységig:

[0,{"as":[["5290.80000","1.00000000","1556724667.748660"],["5290.90000","4.49956524","1556724664.331028"],["5291.70000","1.00000000","1556724653.480504"],["5292.00000","0.95388940","1556724619.682690"],["5292.20000","1.51300000","1556724494.497326"],["5293.10000","0.69800000","1556724667.635414"],["5293.20000","2.00000000","1556724656.022756"],["5293.90000","2.83200000","1556724668.057687"],["5294.10000","0.99600000","1556724666.340462"],["5294.50000","5.00000000","1556724661.980996"]],"bs":[["5290.10000","1.43195600","1556724666.594179"],["5289.80000","2.00000000","1556724663.082526"],["5289.40000","0.49400000","1556724665.274827"],["5289.20000","0.89533312","1556724640.520134"],["5287.40000","3.23600000","1556724660.997516"],["5287.30000","3.33000000","1556724659.999108"],["5287.00000","10.20000000","1556724635.850932"],["5286.00000","3.86378703","1556724662.757360"],["5285.70000","6.40000000","1556724488.785281"],["5283.90000","0.50000000","1556723616.006805"]]},"book-10","XBT/USD"]

A pillanatkép tartalmazza az aktuális legjobb vételi/eladási árakat, a rendelkezésre álló mennyiségekkel, valamint az árfolyam legutóbbi frissítésének dátumát/idejét (UNIX timestamp másodpercben, 6 tizedesjegy pontossággal).

Árszint változások

A kezdeti pillanatkép után az order book árszintjei valós időben módosulnak frissítési, beszúrási és törlési üzenetekkel.

Frissítési üzenetek

Egy frissítési üzenet egy már létező árszintet frissít az order bookban egy új mennyiség és időbélyeg megadásával, például a következő frissítés az 5293.1-es árszintre az order book eladási oldalán:

[0,{"a":[["5293.10000","0.39800000","1556724673.104421"]], "c":"408163318"},"book-10","XBT/USD"]

Míg az ár változatlan marad (5293.1), az adott áron elérhető mennyiség 0.69800000-ról (a kezdeti pillanatkép szerint) 0.39800000-ra változik, és az árszint új időbélyege a változás dátumát/idejét tükrözi.

A frissítési üzenetek csak az order bookban már létező árszinteket módosítják; nem adnak hozzá vagy távolítanak el árszinteket az order bookból.

Beszúrási üzenetek

Egy beszúrási üzenet új árszintet ad hozzá az order bookhoz, például a következő beszúrás az 5294.4-es árszintre az order book eladási oldalán:

[0,{"a":[["5294.40000","0.99600000","1556724672.663220"]], "c":"393966308"},"book-10","XBT/USD"]

Minden beszúrási üzenet tartalmazza az új árszintet (5294.4), az adott áron elérhető mennyiséget (0.99600000), és az árszint legutóbbi frissítésének időbélyegét.

A beszúrási üzenetek az order book árszintjeit úgy módosítják, hogy új árszintet hoznak létre, az összes következő árszintet (alacsonyabb vételi árak vagy magasabb eladási árak) kifelé mozgatják, és a legkülső árszintet az order book hatókörén kívülre tolják.

Például a fenti kezdeti pillanatképből a beszúrási üzenet:

[0,{"a":[["5294.40000","0.99600000","1556724672.663220"]], "c":"393966308"},"book-10","XBT/USD"]

Hozzáadná az 5294.4-es árszintet az order bookhoz a 10. szinten (a legmagasabb eladási ár), és az 5294.5-ös árszintet az order book hatókörén kívülre mozgatná (gyakorlatilag az 5294.5-öt a 11. szintre mozgatva).

Törlési üzenetek

Egy törlési üzenet eltávolít egy árszintet az order bookból, például a következő részleges törlési üzenet az 5294.1-es árszintre az order book eladási oldalán:

[0,{"a":[["5294.10000","0.00000000","1556724670.010241"]] ... },"book-10","XBT/USD"]

A törlési üzenetek tartalmazzák a már nem létező árszintet, mindig 0.0-ás rendelkezésre álló mennyiséget adnak meg, és tartalmaznak egy időbélyeget, amely jelzi az árszint order bookból való eltávolításának dátumát/idejét.

A törlési üzenetek az order book árszintjeit úgy módosítják, hogy eltávolítják az érintett árszintet (teljesen az order bookból, nem csak az előfizetett mélységből), az összes következő árszintet (alacsonyabb vételi árak vagy magasabb eladási árak) befelé mozgatják, és egy új árszintet vonnak be az order book hatókörébe.

Vegye figyelembe, hogy egy törlést mindig azonnal követ egy beszúrás, amely egy új árszintet hoz be a hatókörbe a legkülső szinten (például a 10. szinten egy 10-es előfizetett mélység esetén).

Például a fenti kezdeti pillanatképből a törlési/beszúrási üzenet:

[0,{"a":[["5294.10000","0.00000000","1556724670.010241"],["5294.70000","3.34000000","1556724653.951982","r"]], "c":"3679121060"},"book-10","XBT/USD"]

Ez törölné az 5294.1-es árszintet az order book 9. szintjéről, az 5294.5-ös árszintet a 10. szintről a 9. szintre mozgatná, és azonnal hozzáadná az új 5294.7-es árszintet az order book 10. szintjéhez (a legkülső szint és a legmagasabb eladási ár 10-es mélység esetén).

További források

Az order book logika további részletei elérhetők egy minta order book átirat és példakódok segítségével, amelyek aszinkron (többszálú) és szinkron (egyszálú) parancssori klienseket implementálnak.

Az ebben a cikkben bemutatott tizedes- és ezreselválasztók eltérhetnek a kereskedési platformjainkon megjelenített formátumoktól. Tekintse át cikkünket arról, hogyan használjuk a pontokat és vesszőket további információkért.

További segítségre van szükséged?