WebSocket API v1 - membuat dan membatalkan pesanan

Terakhir dikemas kini: 1 April 2025

WebSocket API v1 kami menyokong dagangan melalui titik akhir addOrder dan cancelOrder. Titik akhir addOrder digunakan untuk membuat pesanan baharu dan titik akhir cancelOrder digunakan untuk membatalkan pesanan sedia ada (terbuka).

Kedua-dua addOrder dan cancelOrder adalah titik akhir peribadi, yang bermaksud ia hanya boleh diakses melalui sambungan WebSocket yang disahkan.

Sambungan awal harus dibuat ke URL WebSocket yang disahkan wss://ws-auth.kraken.com/ , yang kemudiannya boleh dibiarkan terbuka selama-lamanya semasa pesanan dibuat dan dibatalkan. Satu sambungan WebSocket direka untuk menyokong pelbagai permintaan, jadi tidak perlu (atau disyorkan) untuk menyambung/memutuskan sambungan untuk setiap panggilan ke titik akhir dagangan.

Pengesahan WebSocket

Token pengesahan WebSocket boleh diambil melalui titik akhir REST API GetWebSocketsToken.

Setelah token telah diambil, sambungan boleh dibuat ke URL WebSocket peribadi wss://ws-auth.kraken.com/ dan titik akhir addOrder serta cancelOrder kemudiannya boleh digunakan selama-lamanya (token tidak akan tamat tempoh selagi ia digunakan untuk membuat dan membatalkan pesanan).

Ambil perhatian bahawa kunci API yang digunakan untuk mengambil token mesti mempunyai kedua-dua kebenaran Modify Orders dan Cancel/Close Orders, jika tidak, ralat kebenaran ditolak akan diterima daripada WebSocket API.

Membuat pesanan

Setelah sambungan WebSocket yang disahkan telah diwujudkan, pesanan boleh dibuat dengan menghantar mesej seperti berikut:

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

Respons kemudiannya akan diterima yang menunjukkan status permintaan (sama ada pesanan diterima atau ditolak). Untuk pesanan yang diterima dan dibuat dengan jayanya, respons akan menunjukkan status ok dan serupa dengan yang berikut:

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

Untuk pesanan yang ditolak dan tidak dibuat, respons akan menunjukkan status ralat, bersama-sama dengan mesej ralat yang menunjukkan sebab penolakan (argumen tidak sah, dana tidak mencukupi, dsb.), seperti penolakan berikut untuk pesanan yang tidak memenuhi saiz pesanan minimum:

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

Membatalkan pesanan

Setelah sambungan WebSocket yang disahkan telah diwujudkan (atau sebaik-baiknya sambungan sedia ada digunakan semula), pesanan boleh dibatalkan dengan menghantar mesej seperti berikut:

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

Respons kemudiannya akan diterima yang menunjukkan status permintaan (sama ada pembatalan diterima atau ditolak). Untuk pesanan yang berjaya dibatalkan, respons akan menunjukkan status ok dan serupa dengan yang berikut:

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

Untuk permintaan pembatalan yang ditolak, respons akan menunjukkan status ralat, bersama-sama dengan mesej ralat yang menunjukkan sebab penolakan (ID pesanan tidak sah, dsb.), seperti penolakan berikut untuk permintaan membatalkan pesanan yang telah dibatalkan:

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

Ambil perhatian bahawa tidak seperti titik akhir REST API CancelOrder, adalah mungkin untuk menentukan berbilang ID pesanan dalam satu mesej pembatalan WebSocket. ID pesanan yang akan dibatalkan harus disertakan sebagai entri berasingan dalam tatasusunan txid, seperti berikut:

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

Perlu bantuan lebih lanjut?