WebSocket API v1 - Jak utrzymać ważną księgę zleceń

Ostatnia aktualizacja: 1 kwi 2025

Kanał danych księgi zleceń WebSocket API v1 dostarcza wszystkie dane rynkowe potrzebne do utrzymywania lokalnej kopii księgi zleceń Kraken.

Na przykład, kanał danych księgi zleceń dla XBT/USD może być używany do pobierania i utrzymywania księgi zleceń dla naszej pary walutowej Bitcoin/dolar amerykański, dokładnie tak, jak księga zleceń jest wyświetlana na naszej platformie handlowej.

Kanał danych księgi zleceń dostarcza początkową migawkę bieżącej księgi zleceń, a następnie przesyła aktualizacje do księgi zleceń w czasie rzeczywistym, dzięki czemu księga zleceń utrzymywana za pośrednictwem kanału danych księgi zleceń będzie zawsze aktualna.

Pełne szczegóły formatu JSON dla kanału danych księgi zleceń są dostępne w naszej dokumentacji WebSocket API v1.

Migawka księgi zleceń

Po subskrybowaniu kanału danych księgi zleceń, pierwsza wiadomość z danymi rynkowymi będzie migawką bieżącej księgi zleceń.

Migawka księgi zleceń zawiera całą księgę zleceń do żądanej (subskrybowanej) głębokości, tak jak w poniższym przykładzie księgi zleceń XBT/USD o głębokości 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"]

Migawka zawiera aktualne najlepsze ceny kupna/sprzedaży, wraz z ich dostępnymi wolumenami, oraz datę/godzinę ostatniej aktualizacji poziomu ceny (jako UNIX timestamp w sekundach z dokładnością do 6 miejsc po przecinku).

Zmiany poziomów cen

Po początkowej migawce, poziomy cen w księdze zleceń są modyfikowane w czasie rzeczywistym za pomocą wiadomości o aktualizacji, wstawieniu i usunięciu.

Wiadomości o aktualizacji

Wiadomość o aktualizacji aktualizuje poziom ceny, który już istnieje w księdze zleceń, dostarczając nowy wolumen i znacznik czasu, tak jak w poniższej aktualizacji dla poziomu ceny 5293.1 po stronie sprzedaży księgi zleceń:

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

Podczas gdy cena pozostaje taka sama (5293.1), dostępny wolumen po tej cenie zmienia się z 0.69800000 (jak podano w początkowej migawce) na 0.39800000, a nowy znacznik czasu dla poziomu ceny odzwierciedla datę/godzinę, w której nastąpiła zmiana.

Wiadomości o aktualizacji zmieniają tylko poziomy cen, które już istnieją w księdze zleceń; nie dodają ani nie usuwają poziomów cen do/z księgi zleceń.

Wiadomości o wstawieniu

Wiadomość o wstawieniu dodaje nowy poziom ceny do księgi zleceń, tak jak w poniższym wstawieniu dla poziomu ceny 5294.4 po stronie sprzedaży księgi zleceń:

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

Każda wiadomość o wstawieniu zawiera nowy poziom ceny (5294.4), dostępny wolumen po tej cenie (0.99600000) oraz znacznik czasu ostatniej aktualizacji poziomu ceny.

Wiadomości o wstawieniu zmieniają poziomy cen w księdze zleceń, tworząc nowy poziom ceny, przesuwając wszystkie kolejne poziomy cen (niższe ceny kupna lub wyższe ceny sprzedaży) na zewnątrz i wypychając najbardziej zewnętrzny poziom ceny poza zakres księgi zleceń.

Na przykład, z powyższej początkowej migawki, wiadomość o wstawieniu:

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

Dodałoby poziom ceny 5294.4 do księgi zleceń na poziomie 10 (najwyższa cena sprzedaży) i przesunęłoby poziom ceny 5294.5 poza zakres księgi zleceń (skutecznie przenosząc 5294.5 na poziom 11).

Wiadomości o usunięciu

Wiadomość o usunięciu usuwa poziom ceny z księgi zleceń, tak jak w poniższej częściowej wiadomości o usunięciu dla poziomu ceny 5294.1 po stronie sprzedaży księgi zleceń:

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

Wiadomości o usunięciu zawierają poziom ceny, który już nie istnieje, zawsze określają dostępny wolumen 0.0 i zawierają znacznik czasu wskazujący datę/godzinę usunięcia poziomu ceny z księgi zleceń.

Wiadomości o usunięciu zmieniają poziomy cen w księdze zleceń, usuwając dotknięty poziom ceny (całkowicie z księgi zleceń, a nie tylko z subskrybowanej głębokości), przesuwając wszystkie kolejne poziomy cen (niższe ceny kupna lub wyższe ceny sprzedaży) do wewnątrz i wprowadzając nowy poziom ceny w zakres księgi zleceń.

Należy pamiętać, że usunięcie jest zawsze natychmiastowo poprzedzone wstawieniem, które wprowadza nowy poziom ceny w zakres na najbardziej zewnętrznym poziomie (takim jak poziom 10 dla subskrybowanej głębokości 10).

Na przykład, z powyższej początkowej migawki, wiadomość o usunięciu/wstawieniu:

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

Spowodowałoby to usunięcie poziomu ceny 5294.1 z poziomu 9 księgi zleceń, przesunięcie poziomu ceny 5294.5 z poziomu 10 na poziom 9 i natychmiastowe dodanie nowego poziomu ceny 5294.7 do poziomu 10 księgi zleceń (najbardziej zewnętrzny poziom i najwyższa cena sprzedaży dla głębokości 10).

Dodatkowe zasoby

Dalsze szczegóły logiki księgi zleceń są dostępne poprzez przykładowy transkrypt księgi zleceń oraz przykładowy kod implementujący asynchronicznych (wielowątkowych) i synchronicznych (jednowątkowych) klientów wiersza poleceń.

Separatory dziesiętne i tysięcy pokazane w tym artykule mogą różnić się od formatów wyświetlanych na naszych platformach handlowych. Zapoznaj się z naszym artykułem na temat tego, jak używamy kropek i przecinków, aby uzyskać więcej informacji.

Potrzebujesz więcej pomocy?