Kraken WebSocket API - Soalan Lazim

Terakhir dikemas kini: 31 Mac 2025

Adakah Kraken mempunyai WebSocket API? Bagaimanakah saya boleh menyambung kepadanya?

Kraken mempunyai kedua-dua REST API dan WebSocket API. WebSocket API kami tersedia di URL selamat berikut:

Suapan data pasaran Awam (tidak disahkan): wss://ws.kraken.com/

Suapan data akaun Persendirian (disahkan) dan titik akhir dagangan: wss://ws-auth.kraken.com/

Pengesahan tidak diperlukan untuk menyambung ke suapan data pasaran awam, tetapi token pengesahan yang sah diperlukan untuk suapan persendirian.

Semua mesej yang dihantar dan diterima melalui WebSocket API adalah teks biasa yang dikodkan dalam format JSON. Butiran setiap jenis mesej disediakan oleh dokumentasi WebSocket API kami.

Adakah anda mempunyai pustaka WebSocket yang tersedia?

Kami mempunyai pelbagai kod contoh WebSocket API yang tersedia, yang boleh digunakan secara langsung, atau sebagai titik permulaan untuk pelaksanaan anda sendiri:

  • klien baris arahan WebSocket API (dalam Python),

  • suit ujian WebSocket API (dalam JavaScript),

  • contoh cara menggunakan modul Python WebSocket yang disyorkan kami (websocket-client),

  • dan pustaka WebSocket API (Github).

WebSocket API kami boleh dilaksanakan dalam mana-mana bahasa pengaturcaraan yang anda suka, dan pasukan sokongan API kami akan berbesar hati untuk membantu anda atau menyediakan kod contoh dalam bahasa tambahan jika diperlukan.

Suapan/titik akhir yang manakah disokong?

WebSocket API kami menyediakan pelbagai suapan data pasaran masa nyata, suapan data akaun dan titik akhir dagangan. Senarai lengkap suapan/titik akhir yang tersedia, bersama-sama dengan butiran pelaksanaan untuk setiap suapan/titik akhir, boleh didapati dalam dokumentasi WebSocket API kami.

Bagaimanakah saya tahu saya berjaya disambungkan? Bagaimanakah saya tahu saya masih disambungkan?

Apabila melanggan suapan, mesej {u'event': u'heartbeat'} akan diterima pada kekerapan 1 denyutan jantung sesaat.

Denyutan jantung tidak akan diterima jika mesej lain (data pasaran, data akaun, dsb.) diterima sebaliknya. Bila dan mengapa data pasaran atau akaun diterima bergantung pada suapan yang anda langgan.

Jika anda melanggan suapan pasangan mata wang dengan volum dagangan yang rendah, anda mungkin hanya menerima denyutan jantung untuk tempoh yang lama.

Jika anda berhenti melanggan suapan, anda tidak lagi akan menerima denyutan jantung atau data dagangan dan selepas tidak melanggan mana-mana suapan selama 1 minit, anda akan terputus sambungan daripada suapan WebSockets.

Bila dan mengapa WebSocket menghantar data yang dikemas kini?

Bila dan mengapa data pasaran atau data akaun diterima, bergantung pada suapan yang anda langgan. Contohnya:

Ticker: Apabila terdapat dagangan atau kumpulan dagangan untuk pasangan mata wang, mesej ticker diterbitkan untuk pasangan tersebut. Anda hanya akan menerima mesej ini jika anda melanggan suapan ticker untuk pasangan ini.

Dagangan: Begitu juga, apabila terdapat dagangan atau kumpulan dagangan untuk pasangan mata wang, mesej dagangan juga diterbitkan untuk pasangan tersebut. Anda hanya akan menerima mesej ini jika anda melanggan suapan dagangan untuk pasangan ini.

OHLC: Selang OHLC yang dikemas kini diterbitkan untuk setiap selang apabila dagangan atau kumpulan dagangan untuk pasangan mata wang dilaksanakan. Anda hanya akan menerima kemas kini untuk selang yang anda langgan. Selepas melintasi sempadan selang, tiada mesej dihantar sehingga dagangan seterusnya berlaku.

Buku: Gambaran awal buku pesanan dengan kedalaman yang dipilih diterbitkan apabila pertama kali melanggan suapan buku.

Apabila pesanan baharu ditambahkan pada buku pesanan atau dagangan dilaksanakan yang mempengaruhi kedalaman buku pesanan yang anda langgan, mesej diterbitkan yang mengandungi kemas kini buku pesanan untuk mana-mana paras harga dan volum yang terjejas. Kemas kini ini boleh mengandungi hanya bida, hanya tawaran, atau kedua-dua bida dan tawaran. Lihat Cara membina buku pesanan di bawah untuk butiran.

Spread: Apabila pesanan bida tertinggi baharu atau pesanan tawaran terendah diletakkan, atau dagangan dilaksanakan yang mengubah harga bida terbaik atau tawaran terbaik, mesej spread diterbitkan dengan harga bida dan tawaran yang dikemas kini.

Adakah suapan WebSocket menyediakan data sejarah atau hanya data semasa?

Suapan data pasaran WebSocket hanya menyediakan data semasa, walau bagaimanapun adalah mungkin untuk menyambung secara serentak ke WebSocket API untuk data semasa dan REST API untuk data sejarah.

Penggunaan parameter reqid.

Permintaan langganan boleh menyertakan parameter reqid yang disediakan oleh klien yang kemudiannya boleh digunakan untuk memadankan permintaan langganan WebSocket yang dikehendaki dengan ID saluran untuk langganan tersebut.

Ambil perhatian bahawa jika anda membuat berbilang langganan WebSocket pada masa yang sama, semuanya akan diberikan nilai reqid yang sama. Untuk memberikan nilai reqid yang berbeza, setiap suapan mesti dilanggan secara individu.

Saya mahukan butiran lanjut, di manakah saya boleh mendapatkannya?

Spesifikasi WebSocket API yang lengkap tersedia dalam dokumentasi WebSocket API.

Perbezaan antara simbol pasangan mata wang dalam REST dan WebSocket API.

WebSocket API hanya menerima simbol pasangan mata wang dalam format ISO 4217-A3, seperti XBT/USD.

Titik akhir AssetPairs REST API boleh digunakan untuk menterjemah simbol antara versi REST API (seperti XBTUSD atau XXBTZUSD) dan versi WebSocket API (seperti XBT/USD).

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

Medan wsname menyediakan simbol WebSocket API.

Cara membina buku pesanan

Suapan buku WebSocket API adalah yang paling kompleks antara semua suapan WebSocket, tetapi selagi mesej suapan buku ditafsirkan dengan betul, adalah mungkin untuk mengekalkan salinan tempatan buku pesanan dengan hanya beberapa baris kod.

Halaman sokongan WebSocket API kami menyediakan arahan terperinci untuk menafsirkan mesej suapan buku, bersama-sama dengan transkrip suapan buku contoh, dan kod contoh (dalam Python) untuk mengekalkan salinan tempatan buku pesanan yang sah.

Apakah had sambungan WebSocket API?

WebSocket API mengehadkan bilangan maksimum sambungan serentak untuk memberikan perlindungan terhadap penyalahgunaan (seperti serangan DDoS, contohnya). Jika klien WebSocket anda membuat terlalu banyak sambungan pada masa yang sama, mesej ralat berikut akan diterima:

{“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”}}

WebSocket API membenarkan berbilang langganan suapan melalui satu sambungan WebSocket (seperti melanggan semua data pasaran yang tersedia untuk pasangan mata wang XBT/USD melalui satu sambungan), jadi adalah mungkin untuk menstrim semua data pasaran yang tersedia untuk semua pasangan mata wang tanpa mencapai had sambungan WebSocket.

Apakah had kadar WebSocket API?

Had kadar dagangan yang sama dikenakan merentasi semua antara muka kemasukan pesanan (laman web, Kraken Terminal, REST dan WebSocket API), dan dijelaskan secara terperinci di halaman sokongan had kadar kami.

Had kadar mesej bagi satu sambungan WebSocket API akan berbeza-beza bergantung pada beban pada sistem. Klien WebSocket API akan menerima mesej ralat {"Error": "Exceeded msg rate"} apabila had kadar mesej dilampaui.

Dagangan (meletakkan/membatalkan pesanan) melalui WebSocket API.

Dagangan melalui WebSocket API tersedia melalui titik akhir addOrder dan cancelOrder, yang digunakan untuk meletakkan pesanan baharu dan membatalkan pesanan sedia ada (terbuka) masing-masing.

Titik akhir dagangan WebSocket tersedia melalui sambungan WebSocket persendirian yang sama (wss://ws-auth.kraken.com/) seperti suapan pengurusan akaun persendirian (openOrders dan ownTrades).

Butiran penuh mengenai titik akhir dagangan tersedia melalui dokumentasi WebSocket API, dan halaman sokongan WebSocket API kami menyediakan maklumat lanjut dan contoh untuk menggunakan titik akhir dagangan dalam kod anda sendiri.

Mengapa saya menerima ralat 403 apabila menyambung ke WebSocket API?

Sambungan WebSocket API diantara melalui Cloudflare, oleh itu sebarang tetapan keselamatan yang dilaksanakan oleh Cloudflare boleh menjejaskan sambungan ke kedua-dua URL awam (wss://ws.kraken.com) dan persendirian (wss://ws-auth.kraken.com).

Cloudflare memerlukan Server Name Indication (SNI) digunakan untuk semua sambungan TLS, jika tidak sambungan WebSocket akan gagal, dan ralat HTTP 403 Forbidden akan dikembalikan sebaliknya. Halaman sokongan Cloudflare menyediakan butiran lanjut mengenai keperluan TLS SNI mereka.

Pustaka Python WebSocket API rasmi kami telah dikemas kini untuk menyokong TLS SNI, tetapi beberapa pustaka WebSocket API pihak ketiga mungkin masih terjejas. Sila hubungi pasukan sokongan API kami jika anda memerlukan sebarang bantuan mengemas kini kod WebSocket API anda untuk menyokong TLS SNI.

Bantuan WebSocket API.

Sila hubungi pasukan sokongan API kami jika anda memerlukan sebarang bantuan melaksanakan klien WebSocket API anda.

Perlu bantuan lebih lanjut?