WebSocket API v1 - Cara mengekalkan buku pesanan yang sah

Terakhir dikemas kini: 1 April 2025

Suapan buku pesanan WebSocket API v1 menyediakan semua data pasaran yang diperlukan untuk mengekalkan salinan tempatan buku pesanan Kraken.

Sebagai contoh, suapan buku pesanan untuk XBT/USD boleh digunakan untuk mendapatkan dan mengekalkan buku pesanan untuk pasangan mata wang Bitcoin/Dolar AS kami, sama seperti buku pesanan yang ditunjukkan pada platform dagangan kami.

Suapan buku pesanan menyediakan gambaran awal buku pesanan semasa, dan kemudian menstrim kemas kini kepada buku pesanan dalam masa nyata, jadi buku pesanan yang dikekalkan melalui suapan buku pesanan akan sentiasa dikemas kini.

Butiran penuh format JSON untuk suapan buku pesanan tersedia dalam dokumentasi WebSocket API v1 kami.

Gambaran Buku Pesanan

Selepas melanggan suapan buku pesanan, mesej data pasaran pertama akan menjadi gambaran buku pesanan semasa.

Gambaran buku pesanan termasuk keseluruhan buku pesanan sehingga kedalaman yang diminta (dilanggan), seperti contoh berikut buku pesanan XBT/USD hingga kedalaman 10:

[0,{"as":[["5290.80000","1.00000000","1556724667.748660"],["5290.90000","4.49956524","1556724664.331028"],["5291.70000","1.00000000","1556724653.480504"],["5292.00000","0.95388940","1556724619.682690"],["5292.20000","1.51300000","1556724494.497326"],["5293.10000","0.69800000","1556724667.635414"],["5293.20000","2.00000000","1556724656.022756"],["5293.90000","2.83200000","1556724668.057687"],["5294.10000","0.99600000","1556724666.340462"],["5294.50000","5.00000000","1556724661.980996"]],"bs":[["5290.10000","1.43195600","1556724666.594179"],["5289.80000","2.00000000","1556724663.082526"],["5289.40000","0.49400000","1556724665.274827"],["5289.20000","0.89533312","1556724640.520134"],["5287.40000","3.23600000","1556724660.997516"],["5287.30000","3.33000000","1556724659.999108"],["5287.00000","10.20000000","1556724635.850932"],["5286.00000","3.86378703","1556724662.757360"],["5285.70000","6.40000000","1556724488.785281"],["5283.90000","0.50000000","1556723616.006805"]]},"book-10","XBT/USD"]

Gambaran ini termasuk harga bida/tanya terbaik semasa, dengan volum yang tersedia, dan tarikh/masa paras harga terakhir dikemas kini (sebagai UNIX timestamp dalam saat hingga 6 tempat perpuluhan).

Perubahan Paras Harga

Selepas gambaran awal, paras harga buku pesanan diubah suai dalam masa nyata melalui mesej kemas kini, sisipan dan padam.

Mesej Kemas Kini

Mesej kemas kini mengemas kini paras harga yang sudah wujud dalam buku pesanan dengan menyediakan volum dan cap masa baharu, seperti kemas kini berikut untuk paras harga 5293.1 pada sisi tanya buku pesanan:

[0,{"a":[["5293.10000","0.39800000","1556724673.104421"]], "c":"408163318"},"book-10","XBT/USD"]

Walaupun harga kekal sama (5293.1), volum yang tersedia pada harga tersebut diubah daripada 0.69800000 (seperti yang disediakan oleh gambaran awal) kepada 0.39800000, dan cap masa baharu untuk paras harga mencerminkan tarikh/masa perubahan berlaku.

Mesej kemas kini hanya mengubah paras harga yang sudah wujud dalam buku pesanan; ia tidak menambah atau mengalih keluar paras harga ke/dari buku pesanan.

Mesej Sisipan

Mesej sisipan menambah paras harga baharu pada buku pesanan, seperti sisipan berikut untuk paras harga 5294.4 pada sisi tanya buku pesanan:

[0,{"a":[["5294.40000","0.99600000","1556724672.663220"]], "c":"393966308"},"book-10","XBT/USD"]

Setiap mesej sisipan termasuk paras harga baharu (5294.4), volum yang tersedia pada harga tersebut (0.99600000), dan cap masa paras harga terakhir dikemas kini.

Mesej sisipan mengubah paras harga dalam buku pesanan dengan mencipta paras harga baharu, mengalihkan semua paras harga berikutnya (harga bida yang lebih rendah atau harga tanya yang lebih tinggi) ke luar, dan menolak paras harga paling luar keluar dari skop buku pesanan.

Sebagai contoh, daripada gambaran awal di atas, mesej sisipan:

[0,{"a":[["5294.40000","0.99600000","1556724672.663220"]], "c":"393966308"},"book-10","XBT/USD"]

Akan menambah paras harga 5294.4 ke dalam buku pesanan pada paras 10 (harga tanya tertinggi), dan mengalihkan paras harga 5294.5 keluar dari skop buku pesanan (dengan berkesan mengalihkan 5294.5 ke paras 11).

Mesej Padam

Mesej padam mengalih keluar paras harga daripada buku pesanan, seperti mesej padam separa berikut untuk paras harga 5294.1 pada sisi tanya buku pesanan:

[0,{"a":[["5294.10000","0.00000000","1556724670.010241"]] ... },"book-10","XBT/USD"]

Mesej padam termasuk paras harga yang tidak lagi wujud, sentiasa menyatakan volum yang tersedia sebanyak 0.0, dan termasuk cap masa yang menunjukkan tarikh/masa paras harga dialih keluar daripada buku pesanan.

Mesej padam mengubah paras harga dalam buku pesanan dengan mengalih keluar paras harga yang terjejas (daripada buku pesanan sepenuhnya, bukan hanya daripada kedalaman yang dilanggan), mengalihkan semua paras harga berikutnya (harga bida yang lebih rendah atau harga tanya yang lebih tinggi) ke dalam, dan menarik paras harga baharu ke dalam skop buku pesanan.

Ambil perhatian bahawa padam sentiasa diikuti serta-merta dengan sisipan yang membawa paras harga baharu ke dalam skop pada paras paling luar (seperti paras 10 untuk kedalaman langganan 10).

Sebagai contoh, daripada gambaran awal di atas, mesej padam/sisipan:

[0,{"a":[["5294.10000","0.00000000","1556724670.010241"],["5294.70000","3.34000000","1556724653.951982","r"]], "c":"3679121060"},"book-10","XBT/USD"]

Ini akan memadam paras harga 5294.1 daripada paras 9 buku pesanan, mengalihkan paras harga 5294.5 daripada paras 10 ke paras 9, dan serta-merta menambah paras harga baharu 5294.7 ke paras 10 buku pesanan (paras paling luar dan harga tanya tertinggi untuk kedalaman 10).

Sumber Tambahan

Butiran lanjut logik buku pesanan tersedia melalui transkrip buku pesanan contoh dan kod contoh yang melaksanakan klien baris perintah tak segerak (berbilang benang) dan segerak (benang tunggal).

Pemisah perpuluhan dan ribuan yang ditunjukkan dalam artikel ini mungkin berbeza daripada format yang dipaparkan pada platform dagangan kami. Semak artikel kami tentang cara kami menggunakan titik dan koma untuk maklumat lanjut.

Perlu bantuan lebih lanjut?