WebSocket API v1 – zadávání a rušení objednávek

Naposledy aktualizováno: 1. dubna 2025

Naše WebSocket API v1 podporuje obchodování prostřednictvím koncových bodů addOrder a cancelOrder. Koncový bod addOrder se používá pro zadávání nových objednávek a koncový bod cancelOrder se používá pro rušení stávajících (otevřených) objednávek.

Oba koncové body addOrder a cancelOrder jsou soukromé koncové body, což znamená, že k nim lze přistupovat pouze prostřednictvím ověřeného připojení WebSocket.

Počáteční připojení by mělo být navázáno na ověřenou URL adresu WebSocket wss://ws-auth.kraken.com/, která pak může zůstat otevřená neomezeně dlouho, zatímco jsou objednávky zadávány a rušeny. Jedno připojení WebSocket je navrženo tak, aby podporovalo více požadavků, takže není nutné (ani doporučené) se připojovat/odpojovat pro každé volání obchodních koncových bodů.

Ověření WebSocket

Ověřovací token WebSocket lze získat prostřednictvím koncového bodu REST API GetWebSocketsToken.

Jakmile je token získán, lze navázat připojení k soukromé URL adrese WebSocket wss://ws-auth.kraken.com/ a koncové body addOrder a cancelOrder pak lze používat neomezeně (token nevyprší, dokud se používá k zadávání a rušení objednávek).

Všimněte si, že klíč API, který se používá k získání tokenu, musí mít oprávnění Modify Orders i Cancel/Close Orders, jinak bude z WebSocket API přijata chyba „permission denied“ (přístup odepřen).

Zadání objednávky

Jakmile je navázáno ověřené připojení WebSocket, lze zadat objednávku odesláním zprávy podobné následující:

  • {"event":"addOrder", "token":"nT9n23/7oLdq+bNHNMNJ4VvF1hiHhjTnPOaCMiB1GJ0", "pair":"XBT/USD", "type":"buy", "ordertype":"limit", "price":"9857", "volume":"0.002", "leverage":"5", "userref":"8874657"}

Poté bude přijata odpověď udávající stav požadavku (zda byla objednávka přijata nebo zamítnuta). Pro objednávku, která byla úspěšně přijata a zadána, bude odpověď indikovat stav „ok“ a bude podobná následující:

  • {"descr":"buy 0.00200000 XBTUSD @ limit 9857.0 with 5:1 leverage","event":"addOrderStatus","status":"ok","txid":"OPOUJF-BWKCL-FG5DQL"}

Pro objednávku, která byla zamítnuta a nezadána, bude odpověď indikovat stav „error“ (chyba) spolu s chybovou zprávou udávající důvod zamítnutí (neplatné argumenty, nedostatečné prostředky atd.), jako je například následující zamítnutí pro objednávku, která nesplňovala minimální velikost objednávky:

  • {"errorMessage":"EOrder:Order minimum not met","event":"addOrderStatus","status":"error"}

Zrušení objednávky

Jakmile je navázáno ověřené připojení WebSocket (nebo je přednostně znovu použito stávající připojení), lze objednávku zrušit odesláním zprávy podobné následující:

  • {"event":"cancelOrder", "token":"s74Ajl83it0dNNKcF072NJ5wDmLTGIceaCbV96eWbFg", "txid":["OJZ3DI-IU6QC-ME7TVE"]}

Poté bude přijata odpověď udávající stav požadavku (zda bylo zrušení přijato nebo zamítnuto). Pro objednávku, která byla úspěšně zrušena, bude odpověď indikovat stav „ok“ a bude podobná následující:

  • {"event":"cancelOrderStatus","status":"ok"}

Pro požadavek na zrušení, který byl zamítnut, bude odpověď indikovat stav „error“ (chyba) spolu s chybovou zprávou udávající důvod zamítnutí (neplatné ID objednávky atd.), jako je například následující zamítnutí pro požadavek na zrušení objednávky, která již byla zrušena:

  • {"errorMessage":"EOrder:Unknown order","event":"cancelOrderStatus","status":"error"}

Všimněte si, že na rozdíl od koncového bodu REST API CancelOrder je možné v jedné zprávě o zrušení WebSocket specifikovat více ID objednávek. ID objednávek, které mají být zrušeny, by měla být zahrnuta jako samostatné položky v poli txid, a to následovně:

  • {"event":"cancelOrder", "token":"c4JjTNHSurKmWDsnrGaCxIuCOa4FurCZK2ppktvT2Yo", "txid":["OLVCRZ-DNKJI-VRTZKY","O67X6E-PBGSR-GU23R5","OECCDC-T2R4V-52CR7T"]}

Potřebujete další pomoc?