WebSocket API v1 – Jak udržovat platnou knihu objednávek

Poslední aktualizace: 1. dubna 2025

Feed knihy objednávek WebSocket API v1 poskytuje všechna tržní data potřebná k udržování lokální kopie knihy objednávek Kraken.

Například feed knihy objednávek pro XBT/USD by mohl být použit k načítání a udržování knihy objednávek pro náš měnový pár Bitcoin/americký dolar, přesně tak, jak je kniha objednávek zobrazena na naší obchodní platformě.

Feed knihy objednávek poskytuje počáteční snímek aktuální knihy objednávek a poté streamuje aktualizace knihy objednávek v reálném čase, takže kniha objednávek udržovaná prostřednictvím feedu knihy objednávek bude vždy aktuální.

Úplné podrobnosti o formátu JSON pro feed knihy objednávek jsou k dispozici v naší dokumentaci WebSocket API v1.

Snímek knihy objednávek

Po přihlášení k odběru feedu knihy objednávek bude první zpráva s tržními daty snímkem aktuální knihy objednávek.

Snímek knihy objednávek zahrnuje celou knihu objednávek až do požadované (odebírané) hloubky, jako je například následující příklad knihy objednávek XBT/USD do hloubky 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"]

Snímek zahrnuje aktuální nejlepší nákupní/prodejní ceny s jejich dostupnými objemy a datum/čas poslední aktualizace cenové úrovně (jako časové razítko UNIX v sekundách s přesností na 6 desetinných míst).

Změny cenových úrovní

Po počátečním snímku jsou cenové úrovně knihy objednávek upravovány v reálném čase prostřednictvím zpráv o aktualizaci, vložení a smazání.

Zprávy o aktualizaci

Zpráva o aktualizaci aktualizuje cenovou úroveň, která již existuje v knize objednávek, poskytnutím nového objemu a časového razítka, jako je například následující aktualizace pro cenovou úroveň 5293.1 na straně prodejních objednávek knihy objednávek:

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

Zatímco cena zůstává stejná (5293.1), dostupný objem za tuto cenu se změní z 0.69800000 (jak bylo uvedeno v počátečním snímku) na 0.39800000 a nové časové razítko pro cenovou úroveň odráží datum/čas, kdy ke změně došlo.

Zprávy o aktualizaci mění pouze cenové úrovně, které již existují v knize objednávek; nepřidávají ani neodstraňují cenové úrovně do/z knihy objednávek.

Zprávy o vložení

Zpráva o vložení přidá novou cenovou úroveň do knihy objednávek, jako je například následující vložení pro cenovou úroveň 5294.4 na straně prodejních objednávek knihy objednávek:

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

Každá zpráva o vložení zahrnuje novou cenovou úroveň (5294.4), dostupný objem za tuto cenu (0.99600000) a časové razítko, kdy byla cenová úroveň naposledy aktualizována.

Zprávy o vložení mění cenové úrovně v knize objednávek vytvořením nové cenové úrovně, posunutím všech následujících cenových úrovní (nižší nákupní ceny nebo vyšší prodejní ceny) směrem ven a vytlačením nejvzdálenější cenové úrovně mimo rozsah knihy objednávek.

Například z výše uvedeného počátečního snímku by zpráva o vložení:

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

přidala cenovou úroveň 5294.4 do knihy objednávek na úroveň 10 (nejvyšší prodejní cena) a posunula cenovou úroveň 5294.5 mimo rozsah knihy objednávek (efektivně přesunula 5294.5 na úroveň 11).

Zprávy o smazání

Zpráva o smazání odstraní cenovou úroveň z knihy objednávek, jako je například následující částečná zpráva o smazání pro cenovou úroveň 5294.1 na straně prodejních objednávek knihy objednávek:

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

Zprávy o smazání zahrnují cenovou úroveň, která již neexistuje, vždy specifikují dostupný objem 0.0 a zahrnují časové razítko udávající datum/čas, kdy byla cenová úroveň odstraněna z knihy objednávek.

Zprávy o smazání mění cenové úrovně v knize objednávek odstraněním dotčené cenové úrovně (z knihy objednávek zcela, nikoli pouze z odebírané hloubky), posunutím všech následujících cenových úrovní (nižší nákupní ceny nebo vyšší prodejní ceny) směrem dovnitř a zatažením nové cenové úrovně do rozsahu knihy objednávek.

Všimněte si, že smazání je vždy okamžitě následováno vložením, které přivede novou cenovou úroveň do rozsahu na nejvzdálenější úrovni (například úroveň 10 pro odebíranou hloubku 10).

Například z výše uvedeného počátečního snímku by zpráva o smazání/vložení:

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

smazala cenovou úroveň 5294.1 z úrovně 9 knihy objednávek, posunula cenovou úroveň 5294.5 z úrovně 10 na úroveň 9 a okamžitě přidala novou cenovou úroveň 5294.7 na úroveň 10 knihy objednávek (nejvzdálenější úroveň a nejvyšší prodejní cena pro hloubku 10).

Další zdroje

Další podrobnosti o logice knihy objednávek jsou k dispozici prostřednictvím ukázkového přepisu knihy objednávek a ukázkového kódu implementujícího asynchronní (vícevláknové) a synchronní (jednovláknové) klienty příkazového řádku.

Desetinné a tisícové oddělovače zobrazené v tomto článku se mohou lišit od formátů zobrazených na našich obchodních platformách. Další informace naleznete v našem článku o tom, jak používáme tečky a čárky.

Potřebujete další pomoc?