Kraken WebSocket API – Gyakran Ismételt Kérdések

Utolsó frissítés: 2025. március 31.

Rendelkezik a Kraken WebSocket API-val? Hogyan csatlakozhatok hozzá?

A Kraken rendelkezik REST API-val és WebSocket API-val is. A WebSocket API-nk a következő biztonságos URL-eken érhető el:

Nyilvános (nem hitelesített) piaci adatfolyamok: wss://ws.kraken.com/

Privát (hitelesített) számlaadat-folyamok és kereskedési végpontok: wss://ws-auth.kraken.com/

A nyilvános piaci adatfolyamokhoz való csatlakozáshoz nincs szükség hitelesítésre, de a privát adatfolyamokhoz érvényes hitelesítési token szükséges.

A WebSocket API-n keresztül küldött és fogadott összes üzenet egyszerű szövegként, JSON formátumban van kódolva. Az egyes üzenettípusok részleteit a WebSocket API dokumentációnk tartalmazza.

Rendelkeznek WebSocket könyvtárakkal?

Számos WebSocket API példakód áll rendelkezésre, amelyek közvetlenül felhasználhatók, vagy kiindulópontként szolgálhatnak saját implementációjához:

  • egy WebSocket API parancssori kliens (Python nyelven),

  • egy WebSocket API tesztcsomag (JavaScript nyelven),

  • példák arra, hogyan használható az általunk ajánlott Python WebSocket modul (websocket-client),

  • és egy WebSocket API könyvtár (Github).

A WebSocket API bármely preferált programozási nyelven implementálható, és API támogatási csapatunk örömmel segít Önnek, vagy további nyelveken is biztosít példakódot, ha szükséges.

Mely adatfolyamok/végpontok támogatottak?

A WebSocket API számos valós idejű piaci adatfolyamot, számlaadat-folyamot és kereskedési végpontot biztosít. Az elérhető adatfolyamok/végpontok teljes listája, valamint az egyes adatfolyamok/végpontok implementációs részletei megtalálhatók a WebSocket API dokumentációnkban.

Honnan tudom, hogy sikeresen csatlakoztam? Honnan tudom, hogy még mindig csatlakoztatva vagyok?

Amikor feliratkozik egy adatfolyamra, másodpercenként 1 heartbeat üzenet érkezik {u'event': u'heartbeat'} formában.

Heartbeat üzenetek nem érkeznek, ha helyette más üzenetek (piaci adatok, számlaadatok stb.) érkeznek. Az, hogy mikor és miért érkeznek piaci vagy számlaadatok, attól az adatfolyamtól függ, amelyre feliratkozott.

Ha alacsony kereskedési volumenű devizapár adatfolyamára iratkozik fel, hosszú ideig csak heartbeat üzeneteket kaphat.

Ha leiratkozik egy adatfolyamról, többé nem kap heartbeat vagy kereskedési adatokat, és ha 1 percig nem iratkozott fel semmilyen adatfolyamra, akkor lekapcsolódik a WebSockets adatfolyamról.

Mikor és miért küld frissített adatokat a WebSocket?

Az, hogy mikor és miért érkeznek piaci vagy számlaadatok, attól az adatfolyamtól függ, amelyre feliratkozott. Például:

Ticker: Ha egy devizapárra vonatkozóan van egy ügylet vagy ügyletek kötege, akkor egy ticker üzenet kerül közzétételre az adott párról. Ezt az üzenetet csak akkor kapja meg, ha feliratkozott az adott pár ticker adatfolyamára.

Trade: Hasonlóképpen, ha egy devizapárra vonatkozóan van egy ügylet vagy ügyletek kötege, akkor egy trade üzenet is közzétételre kerül az adott párról. Ezt az üzenetet csak akkor kapja meg, ha feliratkozott az adott pár trade adatfolyamára.

OHLC: Frissített OHLC intervallum kerül közzétételre minden intervallumra, amikor egy devizapárra vonatkozó ügylet vagy ügyletek kötege végrehajtásra kerül. Csak azokra az intervallumokra kap frissítéseket, amelyekre feliratkozott. Egy intervallumhatár átlépése után nem küld üzenetet, amíg a következő ügylet meg nem történik.

Book: Az order book kezdeti pillanatfelvétele a kiválasztott mélységgel akkor kerül közzétételre, amikor először feliratkozik a book adatfolyamra.

Ahogy új megbízások kerülnek az order bookba, vagy olyan ügyletek kerülnek végrehajtásra, amelyek befolyásolják az order book mélységét, amelyre feliratkozott, egy üzenet kerül közzétételre, amely az érintett árszintekre és volumenekre vonatkozó order book frissítéseket tartalmazza. Ezek a frissítések tartalmazhatnak csak bid-eket, csak ask-okat, vagy mindkettőt. Részletekért lásd alább az Order book felépítése részt.

Spread: Amikor új legmagasabb bid vagy legalacsonyabb ask megbízás kerül elhelyezésre, vagy egy ügylet végrehajtásra kerül, amely megváltoztatja a legjobb bid vagy legjobb ask árat, egy spread üzenet kerül közzétételre a frissített bid és ask árakkal.

A WebSocket adatfolyamok történelmi adatokat vagy csak aktuális adatokat szolgáltatnak?

A WebSocket piaci adatfolyamok csak aktuális adatokat szolgáltatnak, azonban lehetséges egyszerre csatlakozni a WebSocket API-hoz az aktuális adatokért és a REST API-hoz a történelmi adatokért.

A reqid paraméter használata.

Az előfizetési kérelmek tartalmazhatnak egy kliens által megadott reqid paramétert, amely később felhasználható a kívánt WebSocket előfizetési kérelem és az adott előfizetés csatornaazonosítójának egyeztetésére.

Vegye figyelembe, hogy ha egyszerre több WebSocket előfizetést hoz létre, mindegyik ugyanazt a reqid értéket kapja. Különböző reqid érték hozzárendeléséhez minden adatfolyamra külön-külön kell feliratkozni.

Több részletet szeretnék, hol találom meg őket?

A teljes WebSocket API specifikáció elérhető a WebSocket API dokumentációban.

Különbségek a devizapár szimbólumok között a REST és WebSocket API-kban.

A WebSocket API csak az ISO 4217-A3 formátumú devizapár szimbólumokat fogadja el, mint például az XBT/USD.

A REST API AssetPairs végpontja felhasználható a szimbólumok fordítására a REST API verziók (például XBTUSD vagy XXBTZUSD) és a WebSocket API verzió (például XBT/USD) között.

https://api.kraken.com/0/public/AssetPairs

A wsname mező biztosítja a WebSocket API szimbólumot.

Order book felépítése

A WebSocket API book adatfolyama a legösszetettebb az összes WebSocket adatfolyam közül, de amíg a book adatfolyam üzenetei helyesen vannak értelmezve, addig egy order book helyi másolatát néhány sor kóddal is fenn lehet tartani.

A WebSocket API támogatási oldalaink részletes útmutatót nyújtanak a book adatfolyam üzeneteinek értelmezéséhez, valamint egy példa book adatfolyam átiratot és példakódot (Python nyelven) az order book érvényes helyi másolatának fenntartásához.

Melyek a WebSocket API csatlakozási korlátai?

A WebSocket API korlátozza az egyidejű kapcsolatok maximális számát a visszaélések (például DDoS támadások) elleni védelem érdekében. Ha a WebSocket kliense túl sok kapcsolatot létesít egyszerre, a következő hibaüzenet érkezik:

{“error”: {“message”: “You have reached maximum capacity for WebSocket connections. Please reach out to Kraken support team for any questions.“, “hint”: “Your code may be reconnecting too often or when it has no need to.“, “name”: “WebSocket connection rate error”}}

A WebSocket API több adatfolyam-előfizetést is lehetővé tesz egyetlen WebSocket kapcsolaton keresztül (például az XBT/USD devizapár összes elérhető piaci adatára való feliratkozás egyetlen kapcsolaton keresztül), így lehetséges az összes elérhető piaci adat streamelése az összes devizapárra vonatkozóan anélkül, hogy elérné a WebSocket csatlakozási korlátokat.

Melyek a WebSocket API sebességkorlátai?

Ugyanazok a kereskedési sebességkorlátok vonatkoznak az összes megbízásbeviteli felületre (weboldal, Kraken Terminal, REST és WebSocket API-k), és részletesen elmagyarázzuk őket a sebességkorlátok támogatási oldalán.

Egyetlen WebSocket API kapcsolat üzenetsebesség-korlátja a rendszer terhelésétől függően változik. A WebSocket API kliensek a {"Error": "Exceeded msg rate"} hibaüzenetet kapják, ha az üzenetsebesség-korlátot túllépték.

Kereskedés (megbízások elhelyezése/törlése) a WebSocket API-n keresztül.

A WebSocket API-n keresztül történő kereskedés az addOrder és cancelOrder végpontokon keresztül érhető el, amelyek új megbízások elhelyezésére, illetve meglévő (nyitott) megbízások törlésére szolgálnak.

A WebSocket kereskedési végpontok ugyanazon a privát WebSocket kapcsolaton (wss://ws-auth.kraken.com/) keresztül érhetők el, mint a privát számlakezelési adatfolyamok (openOrders és ownTrades).

A kereskedési végpontokkal kapcsolatos teljes részletek a WebSocket API dokumentációban találhatók, és a WebSocket API támogatási oldalaink további információkat és példákat nyújtanak a kereskedési végpontok saját kódjában való használatához.

Miért kapok 403-as hibát, amikor csatlakozom a WebSocket API-hoz?

A WebSocket API kapcsolatok a Cloudflare-en keresztül közvetítődnek, ezért a Cloudflare által implementált biztonsági beállítások befolyásolhatják mind a nyilvános (wss://ws.kraken.com), mind a privát (wss://ws-auth.kraken.com) URL-ekhez való csatlakozást.

A Cloudflare megköveteli, hogy minden TLS kapcsolathoz Server Name Indication (SNI) legyen használva, különben a WebSocket kapcsolat sikertelen lenne, és helyette HTTP 403 Forbidden hibaüzenet térne vissza. A Cloudflare támogatási oldalai további részleteket tartalmaznak a TLS SNI követelményükről.

Hivatalos Python WebSocket API könyvtárunk frissítésre került a TLS SNI támogatására, de néhány harmadik féltől származó WebSocket API könyvtár még mindig érintett lehet. Kérjük, forduljon API támogatási csapatunkhoz, ha segítségre van szüksége a WebSocket API kódjának frissítéséhez a TLS SNI támogatásához.

WebSocket API segítség.

Kérjük, forduljon API támogatási csapatunkhoz, ha segítségre van szüksége a WebSocket API kliens implementálásához.

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