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.