WebSocket API v1 – Sådan vedligeholdes en gyldig orderbog

Sidst opdateret: 1. april 2025

WebSocket API v1-orderbog-feedet leverer alle de markedsdata, der er nødvendige for at opretholde en lokal kopi af en Kraken orderbog.

For eksempel kan orderbog-feedet for XBT/USD bruges til at hente og vedligeholde orderbogen for vores Bitcoin/US Dollar-valutapar, præcis som orderbogen vises på vores handelsplatform.

Orderbog-feedet giver et indledende øjebliksbillede af den aktuelle orderbog og streamer derefter opdateringer til orderbogen i realtid, så en orderbog, der vedligeholdes via orderbog-feedet, altid vil være opdateret.

Fuldstændige detaljer om JSON-formatet for orderbog-feedet er tilgængelige i vores WebSocket API v1-dokumentation.

Orderbog-øjebliksbillede

Efter at have abonneret på orderbog-feedet vil den første markedsdatameddelelse være et øjebliksbillede af den aktuelle orderbog.

Orderbog-øjebliksbilledet inkluderer hele orderbogen op til den anmodede (abonnerede) dybde, såsom følgende eksempel på XBT/USD-orderbogen til en dybde på 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"]

Øjebliksbilledet inkluderer de aktuelle bedste bud-/udbudspriser med deres tilgængelige volumener og dato/klokkeslæt for den seneste opdatering af prisniveauet (som et UNIX-tidsstempel i sekunder med 6 decimaler).

Prisniveauændringer

Efter det indledende øjebliksbillede ændres prisniveauerne i orderbogen i realtid via opdaterings-, indsættelses- og sletningsmeddelelser.

Opdateringsmeddelelser

En opdateringsmeddelelse opdaterer et prisniveau, der allerede eksisterer i orderbogen, ved at angive et nyt volumen og tidsstempel, såsom følgende opdatering for prisniveau 5293.1 på udbudssiden af orderbogen:

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

Mens prisen forbliver den samme (5293.1), ændres det tilgængelige volumen til den pris fra 0.69800000 (som angivet af det indledende øjebliksbillede) til 0.39800000, og det nye tidsstempel for prisniveauet afspejler dato/klokkeslæt for ændringen.

Opdateringsmeddelelser ændrer kun prisniveauer, der allerede eksisterer i orderbogen; de tilføjer eller fjerner ikke prisniveauer til/fra orderbogen.

Indsættelsesmeddelelser

En indsættelsesmeddelelse tilføjer et nyt prisniveau til orderbogen, såsom følgende indsættelse for prisniveau 5294.4 på udbudssiden af orderbogen:

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

Hver indsættelsesmeddelelse inkluderer det nye prisniveau (5294.4), det tilgængelige volumen til den pris (0.99600000) og tidsstemplet for den seneste opdatering af prisniveauet.

Indsættelsesmeddelelser ændrer prisniveauerne i orderbogen ved at oprette et nyt prisniveau, flytte alle de efterfølgende prisniveauer (lavere budpriser eller højere udbudspriser) udad og skubbe det yderste prisniveau ud af orderbogens omfang.

For eksempel, fra det indledende øjebliksbillede ovenfor, ville indsættelsesmeddelelsen:

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

Tilføje prisniveau 5294.4 til orderbogen på niveau 10 (den højeste udbudspris) og flytte prisniveau 5294.5 ud af orderbogens omfang (ved effektivt at flytte 5294.5 til niveau 11).

Sletningsmeddelelser

En sletningsmeddelelse fjerner et prisniveau fra orderbogen, såsom følgende delvise sletningsmeddelelse for prisniveau 5294.1 på udbudssiden af orderbogen:

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

Sletningsmeddelelser inkluderer prisniveauet, der ikke længere eksisterer, angiver altid et tilgængeligt volumen på 0.0 og inkluderer et tidsstempel, der angiver dato/klokkeslæt for, at prisniveauet blev fjernet fra orderbogen.

Sletningsmeddelelser ændrer prisniveauerne i orderbogen ved at fjerne det berørte prisniveau (helt fra orderbogen, ikke kun fra den abonnerede dybde), flytte alle de efterfølgende prisniveauer (lavere budpriser eller højere udbudspriser) indad og trække et nyt prisniveau ind i orderbogens omfang.

Bemærk, at en sletning altid umiddelbart efterfølges af en indsættelse, der bringer et nyt prisniveau ind i omfanget på det yderste niveau (såsom niveau 10 for en abonneret dybde på 10).

For eksempel, fra det indledende øjebliksbillede ovenfor, ville sletnings-/indsættelsesmeddelelsen:

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

Dette ville slette prisniveau 5294.1 fra niveau 9 i orderbogen, flytte prisniveau 5294.5 fra niveau 10 til niveau 9 og straks tilføje det nye prisniveau 5294.7 til niveau 10 i orderbogen (det yderste niveau og højeste udbudspris for en dybde på 10).

Yderligere ressourcer

Yderligere detaljer om orderbog-logikken er tilgængelige via en eksempel på orderbog-transskription og eksempelkode, der implementerer asynkrone (flertrådede) og synkrone (entrådede) kommandolinjeklienter.

Decimal- og tusindtalsseparatorerne vist i denne artikel kan afvige fra de formater, der vises på vores handelsplatforme. Gennemgå vores artikel om, hvordan vi bruger punkter og kommaer for mere information.

Har du brug for mere hjælp?