Handelsbegränsningar

Senast uppdaterad: More than 3 months ago

Våra REST- och WebSocket-API:er använder handelsbegränsningar (rate limits) för att skydda API:erna mot skadlig användning och för att skydda våra marknader mot manipulation av orderböcker.

Våra handelsbegränsningar är utformade för att hålla våra marknader rättvisa för alla marknadsaktörer, samtidigt som de tillhandahåller de resurser som behövs av olika typer av handlare (investerare, aktiva handlare, automatiserade handelsrobotar och så vidare).

De flesta handlare kommer aldrig att stöta på handelsbegränsningarna, men för dem som lägger/avbryter order med högre frekvens än vanligt eller lägger/avbryter ett större antal order, kan begränsningarna nås, vilket resulterar i ett EOrder:Rate limit exceeded-fel.

Observera att handelsbegränsningarna gäller separat per valutapar, så att nå begränsningarna för ett valutapar (till exempel XBT/USD) påverkar inte handel med något annat valutapar (till exempel LTC/EUR).

För många handlare är det inte nödvändigt att känna till de specifika detaljerna i algoritmerna för handelsbegränsningar; det räcker att veta ungefär hur många orderhändelser som kan inträffa inom en viss tidsperiod (i huvudsak svara på frågan "Hur många order kan jag lägga/avbryta per minut?").

Eftersom det finns potentiellt obegränsade kombinationer av orderhändelser (läggning, utförande, avbrytande) och orderlivslängder (hur länge en order ligger kvar i orderboken), är det inte möjligt att ange ett enda exakt värde, men följande tabell ger exempel för flera typiska kombinationer.

Kolumnerna Intermediate och Pro anger kontoverifieringsnivån, tillsammans med det maximala antalet orderhändelser som kan inträffa per minut på en konsekvent basis utan att nå handelsbegränsningarna.

 

Rate limits combinations

Som visas ovan kommer verifiering av ett konto till en högre nivå, ökad orderfyllnadsgrad eller ökad orderlivslängd alla att avsevärt minska användningen av handelsbegränsningarna, vilket därmed möjliggör ett högre ihållande antal orderhändelser per minut.

Våra handelsbegränsningar baseras på en räknare som ökar när order läggs och avbryts, och minskar över tid med en fast avklingningshastighet. Handelsbegränsningarna nås när denna räknare överskrider ett maximalt värde (som varierar beroende på kontoverifieringsnivån). De maximala räknarvärdena (värdena när handelsbegränsningen nås) för varje kontotyp är följande:

  • Standardverifiering (tidigare känd som Intermediate) = 125

  • Verifierad med högre gränser (tidigare känd som Pro) = 180

Avklingningshastigheten (hastigheten med vilken räknaren minskar) baseras också på kontoverifieringsnivån. Följande är avklingningshastigheterna för varje kontotyp:

  • Standardverifiering (tidigare känd som Intermediate) = 2.34 per sekund

  • Verifierad med högre gränser (tidigare känd som Pro) = 3.75 per sekund

Räknaren för handelsbegränsningar ökar när varje orderhändelse (läggning eller avbrytande) inträffar, där orderavbrytanden orsakar den största ökningen. Följande tabell visar hur mycket räknaren ökar (känd som straffpoäng) för varje typ av orderhändelse:

Rate Limits

Anmärkningar:

  • 1 För straffpoängen för batchorder är n = antalet order i batchen.

  • 2 Att redigera en order medför också 1 poängs straff för orderläggning.

  • 3 Order som automatiskt avbryts som misslyckade IOC-order medför inga straffpoäng för avbrytande.

  • 4 Att ändra en order medför också 1 poängs straff för orderläggning.

  • 5 Avvisade "post only"-order accepteras initialt men avbryts sedan automatiskt; läggningen medför 1 poängs straff och avbrytandet medför 8 poängs straff (för totalt 9 poäng).

Följande är ett exempel på hur det maximala räknarvärdet, räknarökningen på grund av orderhändelser och räknarminskningen på grund av avklingningshastigheten kombineras för att implementera handelsbegränsningarna för ett konto på Pro-nivå.

Att lägga 20 limitorder och avbryta varje order efter 3 sekunder skulle medföra ett straff på 9 poäng per order, eller totalt 180 poäng:

  • (20 order x 1 poäng för orderläggning) + (20 order x 8 poäng för orderavbrytande) = 180 poäng

Straffet på 180 poäng skulle sedan minskas med 3.75 poäng per sekund, vilket innebär att det bara skulle ta 1 sekund innan tre nya order kunde läggas (eftersom varje ny order skulle medföra 1 poängs straff för orderläggning), men det skulle ta 48 sekunder för handelsbegränsningarna att helt återställas (till noll):

  • 180 poäng / 3.75 poäng per sekund = 48 sekunder

Följande beräkningar visar hur man bestämmer det maximala antalet orderhändelser per minut som kan upprätthållas utan att nå handelsbegränsningarna:

  • Orderstraff = (Straffpoäng * Fyllnadsgrad) + (Straffpoäng * Fyllnadsgrad) ... (upp till 100 %)

  • Orderhändelser per minut = 60 sekunder / (Orderstraff / Avklingningshastighet)

Som ett exempel för ett konto på Pro-nivå som lägger limitorder, varav 60 % fylldes efter 3 sekunder och 40 % avbröts efter 8 sekunder:

  • Orderstraff = (1 * 60 %) + (7 * 40 %) = 3.4 poäng

  • Orderhändelser per minut = 60 / (3.4 / 3.75) = 66 händelser

Som ett verkligt exempel på handelsbegränsningarna är följande en kronologisk transkription av hur straffräknaren ökar och minskar när order läggs/avbryts.

I detta exempel är kontotypen ett konto på Pro-nivå (därmed ett maximalt räknarvärde på 180 med en avklingningshastighet på 3.75 per sekund), och orderaktiviteten är att lägga 3 order (med en hastighet av 1 order var 0.5 sekund) och sedan avbryta 3 order (med FIFO så att den äldsta ordern avbryts först).

API_ChronologicalExample_10022020.png

Utöver exemplen ovan tillåter vår kalkylator för handelsbegränsningar att det maximala antalet orderhändelser bestäms för vilken kombination som helst av orderfyllnadsgrad och orderlivslängd. Med endast ett fåtal variabler (som kontoverifieringsnivå) kan orderhändelser specificeras som en procentandel eller som en absolut kvantitet, och kalkylatorn kommer att indikera om den önskade kombinationen passar inom handelsbegränsningarna eller inte.

Ytterligare frågor

Handelsbegränsningar är ett av flera verktyg som Kraken använder för att förbättra plattformssäkerheten och tillgängligheten för alla kunder. Få kunder bör stöta på problem med handelsbegränsningar. Om du får felmeddelanden om handelsbegränsningar, se först till att din programvara fungerar korrekt. Om din handelsfrekvens kräver ett undantag från handelsbegränsningarna kan Kraken utvärdera kunder från fall till fall för att säkerställa att ett undantag inte utgör risker för plattformssäkerheten eller tillgängligheten. Kontakta din kontohanterare eller kontakta vårt API-supportteam med eventuella frågor eller för att begära en utvärdering.

Behöver du mer hjälp?