WebSocket API v1 - toimeksiantojen tekeminen ja peruuttaminen

Viimeksi päivitetty: 1.4.2025

WebSocket API v1 -rajapintamme tukee kaupankäyntiä addOrder- ja cancelOrder-päätepisteiden kautta. addOrder-päätepistettä käytetään uusien toimeksiantojen tekemiseen ja cancelOrder-päätepistettä käytetään olemassa olevien (avoimien) toimeksiantojen peruuttamiseen.

Sekä addOrder että cancelOrder ovat yksityisiä päätepisteitä, mikä tarkoittaa, että niihin pääsee vain todennetun WebSocket-yhteyden kautta.

Alkuperäinen yhteys tulee muodostaa todennettuun WebSocket-URL-osoitteeseen wss://ws-auth.kraken.com/ , joka voidaan sitten pitää auki loputtomiin toimeksiantojen tekemisen ja peruuttamisen ajan. Yksi WebSocket-yhteys on suunniteltu tukemaan useita pyyntöjä, joten yhteyden muodostaminen/katkaiseminen jokaiselle kaupankäyntipäätepisteen kutsulle ei ole välttämätöntä (eikä suositeltavaa).

WebSocket-todennus

WebSocket-todennustunnus voidaan hakea REST API GetWebSocketsToken -päätepisteen kautta.

Kun tunnus on haettu, yhteys voidaan muodostaa yksityiseen WebSocket-URL-osoitteeseen wss://ws-auth.kraken.com/ ja addOrder- ja cancelOrder-päätepisteitä voidaan sen jälkeen käyttää loputtomiin (tunnus ei vanhene, kun sitä käytetään toimeksiantojen tekemiseen ja peruuttamiseen).

Huomaa, että tunnuksen hakemiseen käytettävällä API-avaimella on oltava sekä Modify Orders- että Cancel/Close Orders -käyttöoikeudet, muuten WebSocket API palauttaa 'permission denied' -virheen.

Toimeksiannon tekeminen

Kun todennettu WebSocket-yhteys on muodostettu, toimeksianto voidaan tehdä lähettämällä seuraavanlainen viesti:

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

Tämän jälkeen vastaanotetaan vastaus, joka ilmoittaa pyynnön tilan (hyväksyttiinkö vai hylättiinkö toimeksianto). Jos toimeksianto hyväksyttiin ja tehtiin onnistuneesti, vastauksen tila on ok ja se on seuraavanlainen:

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

Jos toimeksianto hylättiin eikä sitä tehty, vastauksen tila on error ja mukana on virheilmoitus, joka kertoo hylkäämisen syyn (virheelliset argumentit, riittämättömät varat jne.), kuten seuraava hylkäys toimeksiannolle, joka ei täyttänyt vähimmäiskokoa:

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

Toimeksiannon peruuttaminen

Kun todennettu WebSocket-yhteys on muodostettu (tai mieluiten olemassa olevaa yhteyttä käytetään uudelleen), toimeksianto voidaan peruuttaa lähettämällä seuraavanlainen viesti:

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

Tämän jälkeen vastaanotetaan vastaus, joka ilmoittaa pyynnön tilan (hyväksyttiinkö vai hylättiinkö peruutus). Jos toimeksianto peruutettiin onnistuneesti, vastauksen tila on ok ja se on seuraavanlainen:

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

Jos peruutuspyyntö hylättiin, vastauksen tila on error ja mukana on virheilmoitus, joka kertoo hylkäämisen syyn (virheellinen toimeksiantotunnus jne.), kuten seuraava hylkäys pyynnölle peruuttaa toimeksianto, joka oli jo peruutettu:

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

Huomaa, että toisin kuin REST-rajapinnan CancelOrder-päätepisteessä, on mahdollista määrittää useita toimeksiantotunnuksia yhdessä WebSocket-peruutusviestissä. Peruutettavat toimeksiantotunnukset tulee sisällyttää erillisinä merkintöinä txid-taulukkoon seuraavasti:

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

Tarvitsetko lisää apua?