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 utrzymania lokalnej kopii księgi zleceń Kraken.

Na przykład, kanał danych księgi zleceń dla XBT/USD może być użyty do pobierania i utrzymywania księgi zleceń dla naszej pary walutowej Bitcoin/US Dollar, 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 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 zasubskrybowaniu 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 (zasubskrybowanej) głębokości, tak jak w poniższym przykładzie księgi zleceń XBT/USD do 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, z ich dostępnymi wolumenami oraz datę/godzinę ostatniej aktualizacji poziomu ceny (jako znacznik czasu UNIX 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 aktualizujących, wstawiających i usuwających.

Wiadomości aktualizujące

Wiadomość aktualizująca modyfikuje poziom ceny, który już istnieje w księdze zleceń, dostarczając nowy wolumen i znacznik czasu, jak w poniższym przykładzie aktualizacji dla poziomu ceny 5293.1 po stronie ask 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 (zgodnie z początkową migawką) na 0.39800000, a nowy znacznik czasu dla poziomu ceny odzwierciedla datę/godzinę, w której nastąpiła zmiana.

Wiadomości aktualizujące 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 wstawiające

Wiadomość wstawiająca dodaje nowy poziom ceny do księgi zleceń, jak w poniższym przykładzie wstawienia dla poziomu ceny 5294.4 po stronie ask księgi zleceń:

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

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

Wiadomości wstawiające zmieniają poziomy cen w księdze zleceń poprzez utworzenie nowego poziomu ceny, przesunięcie wszystkich kolejnych poziomów cen (niższe ceny bid lub wyższe ceny ask) na zewnątrz i wypchnięcie najbardziej zewnętrznego poziomu ceny poza zakres księgi zleceń.

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

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

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

Wiadomości usuwające

Wiadomość usuwająca usuwa poziom ceny z księgi zleceń, jak w poniższym częściowym przykładzie wiadomości usuwającej dla poziomu ceny 5294.1 po stronie ask księgi zleceń:

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

Wiadomości usuwające 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 usuwające zmieniają poziomy cen w księdze zleceń poprzez usunięcie dotkniętego poziomu ceny (całkowicie z księgi zleceń, a nie tylko z zasubskrybowanej głębokości), przesunięcie wszystkich kolejnych poziomów cen (niższe ceny bid lub wyższe ceny ask) do wewnątrz i wciągnięcie nowego poziomu 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 zasubskrybowanej głębokości 10).

Na przykład, z powyższej początkowej migawki, wiadomość usuwająca/wstawiająca:

[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 ask dla głębokości 10).

Dodatkowe zasoby

Dalsze szczegóły logiki księgi zleceń są dostępne w przykładowym transkrypcie księgi zleceń oraz w przykładowym kodzie implementującym asynchroniczne (wielowątkowe) i synchroniczne (jednowątkowe) klienty 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 używania kropek i przecinków, aby uzyskać więcej informacji.

Potrzebujesz więcej pomocy?