API Kraken | Publiczne API WebSocket

Połączenie

URL: wss://ws.kraken.com (v1) lub wss://ws.kraken.com/v2 (v2, zalecane)

Komponent obsługuje teraz WebSocket API v2 poprzez właściwość Version (domyślnie: 2). Należy ustawić Kraken.Version := 1, aby korzystać ze starszego punktu końcowego v1.

 

Po otwarciu gniazda można subskrybować publiczny kanał, wysyłając wiadomość z żądaniem subskrypcji.

 

Uwagi ogólne

 

Obsługiwane pary

ADA/CAD, ADA/ETH, ADA/EUR, ADA/USD, ADA/XBT, ATOM/CAD, ATOM/ETH, ATOM/EUR, ATOM/USD, ATOM/XBT, BCH/EUR, BCH/USD, BCH/XBT, DASH/EUR, DASH/USD, DASH/XBT, EOS/ETH, EOS/EUR, EOS/USD, EOS/XBT, GNO/ETH, GNO/EUR, GNO/USD, GNO/XBT, QTUM/CAD, QTUM/ETH, QTUM/EUR, QTUM/USD, QTUM/XBT, USDT/USD, ETC/ETH, ETC/XBT, ETC/EUR, ETC/USD, ETH/XBT, ETH/CAD, ETH/EUR, ETH/GBP, ETH/JPY, ETH/USD, LTC/XBT, LTC/EUR, LTC/USD, MLN/ETH, MLN/XBT, REP/ETH, REP/XBT, REP/EUR, REP/USD, STR/EUR, STR/USD, XBT/CAD, XBT/EUR, XBT/GBP, XBT/JPY, XBT/USD, BTC/CAD, BTC/EUR, BTC/GBP, BTC/JPY, BTC/USD, XDG/XBT, XLM/XBT, DOGE/XBT, STR/XBT, XLM/EUR, XLM/USD, XMR/XBT, XMR/EUR, XMR/USD, XRP/XBT, XRP/CAD, XRP/EUR, XRP/JPY, XRP/USD, ZEC/XBT, ZEC/EUR, ZEC/JPY, ZEC/USD, XTZ/CAD, XTZ/ETH, XTZ/EUR, XTZ/USD, XTZ/XBT

 

Metody

Ping

Klient może wysłać ping do serwera, aby sprawdzić, czy połączenie jest aktywne; serwer odpowiada pongiem.

Jest to ping na poziomie aplikacji, w odróżnieniu od domyślnego pingu w standardzie WebSockets, który jest inicjowany przez serwer

Ticker

Informacje o kursach obejmują najlepsze ceny kupna i sprzedaży, wolumen z ostatnich 24 godzin, cenę ostatniej transakcji, ważoną wolumenem średnią cenę itp. dla danej pary walutowej. Wiadomość kursowa jest publikowana za każdym razem, gdy odbywa się transakcja lub grupa transakcji.

Subskrybuj ticker, wywołując metodę SubscribeTicker:


SubscribeTicker(['XBT/USD']);

Jeśli subskrypcja zakończy się sukcesem, zostanie wywołane zdarzenie OnKrakenSubscribed:


procedure OnKrakenSubscribed(Sender: TObject;ChannelId: Integer; Pair, Subscription, ChannelName: string; 
  ReqID:Integer);
begin
  DoLog('#subscribed: ' + Subscription + ' ' + Pair + ' ' + ChannelName);
end;

Anulowanie subskrypcji przez wywołanie metody UnSubscribeTicker:


UnSubscribeTicker(['XBT/USD']);

Jeśli anulowanie subskrypcji zakończy się powodzeniem, zostanie wywołane zdarzenie OnKrakenUnSubscribed:


procedure OnKrakenUnSubscribed(Sender: TObject; ChannelId: Integer; Pair, Subscription: string; 
  ReqID: Integer);
begin
  DoLog('#unsubscribed: ' + Subscription + ' ' + Pair);
end;

Jeśli podczas próby subskrypcji / anulowania subskrypcji wystąpi błąd, zostanie wywołane zdarzenie OnKrakenSubscriptionError.


procedure OnKrakenSubscriptionError(Sender: TObject; ErrorMessage, Pair, Subscription: string; 
  ReqID: Integer);
begin
  DoLog('#subscription error: ' + ErrorMessage);
end;

Aktualizacje tickera będą zgłaszane w zdarzeniu OnKrakenData.

 
[
  0,
  {
    "a": [
      "5525.40000",
      1,
      "1.000"
    ],
    "b": [
      "5525.10000",
      1,
      "1.000"
    ],
    "c": [
      "5525.10000",
      "0.00398963"
    ],
    "v": [
      "2634.11501494",
      "3591.17907851"
    ],
    "p": [
      "5631.44067",
      "5653.78939"
    ],
    "t": [
      11493,
      16267
    ],
    "l": [
      "5505.00000",
      "5505.00000"
    ],
    "h": [
      "5783.00000",
      "5783.00000"
    ],
    "o": [
      "5760.70000",
      "5763.40000"
    ]
  },
  "ticker",
  "XBT/USD"
]

OHLC

Po zasubskrybowaniu OHLC wysyłana jest migawka ostatniej prawidłowej świecy (niezależnie od czasu zakończenia), a następnie aktualizacje bieżącej świecy. Na przykład, jeśli subskrypcja dotyczy świecy 1-minutowej i przez 5 minut nie było żadnych transakcji, opublikowana zostanie migawka ostatniej świecy 1-minutowej sprzed 5 minut. Parametr endtime pozwala ustalić, czy jest to stara świeca.

Aby subskrybować OHLC, należy wywołać metodę SubscribeOHLC, przekazując parę i interwał.


SubscribeOHLC(['XBT/USD'], kin1min);

W przypadku pomyślnej subskrypcji zostanie wywołane zdarzenie OnKrakenSubscribed:


procedure OnKrakenSubscribed(Sender: TObject;ChannelId: Integer; Pair, Subscription, ChannelName: string; 
  ReqID:Integer);
begin
  DoLog('#subscribed: ' + Subscription + ' ' + Pair + ' ' + ChannelName);
end;

Anulowanie subskrypcji przez wywołanie metody UnSubscribeOHLC:

 
UnSubscribeOHLC(['XBT/USD'], kin1min);

Jeśli anulowanie subskrypcji zakończy się powodzeniem, zostanie wywołane zdarzenie OnKrakenUnSubscribed:

 
procedure OnKrakenUnSubscribed(Sender: TObject; ChannelId: Integer; Pair, Subscription: string; 
  ReqID: Integer);
begin
  DoLog('#unsubscribed: ' + Subscription + ' ' + Pair);
end;

Jeśli podczas próby subskrypcji / anulowania subskrypcji wystąpi błąd, zostanie wywołane zdarzenie OnKrakenSubscriptionError.

 
procedure OnKrakenSubscriptionError(Sender: TObject; ErrorMessage, Pair, Subscription: string; 
  ReqID: Integer);
begin
  DoLog('#subscription error: ' + ErrorMessage);
end;

Aktualizacje OHLC będą powiadamiane w zdarzeniu OnKrakenData.


[
  42,
  [
    "1542057314.748456",
    "1542057360.435743",
    "3586.70000",
    "3586.70000",
    "3586.60000",
    "3586.60000",
    "3586.68894",
    "0.03373000",
    2
  ],
  "ohlc-5",
  "XBT/USD"
]

Transakcja

Kanał handlowy dla pary walutowej.

Subskrybuj kanał transakcji, wywołując metodę SubscribeTrade.

 
SubscribeTrade(['XBT/USD']);

W przypadku pomyślnej subskrypcji zostanie wywołane zdarzenie OnKrakenSubscribed:

 
procedure OnKrakenSubscribed(Sender: TObject;ChannelId: Integer; Pair, Subscription, ChannelName: 
  string; ReqID:Integer);
begin
  DoLog('#subscribed: ' + Subscription + ' ' + Pair + ' ' + ChannelName);
end;

Anuluj subskrypcję wywołując metodę UnSubscribeTrade:

 
UnSubscribeTrade(['XBT/USD']);

Jeśli anulowanie subskrypcji zakończy się powodzeniem, zostanie wywołane zdarzenie OnKrakenUnSubscribed:

  
procedure OnrakenUnSubscribed(Sender: TObject; ChannelId: Integer; Pair, Subscription: string; 
  ReqID: Integer);
begin
  DoLog('#unsubscribed: ' + Subscription + ' ' + Pair);
end;

Jeśli podczas próby subskrypcji / anulowania subskrypcji wystąpi błąd, zostanie wywołane zdarzenie OnKrakenSubscriptionError.

   
procedure OnKrakenSubscriptionError(Sender: TObject; ErrorMessage, Pair, Subscription: string; 
  ReqID: Integer);
begin
  DoLog('#subscription error: ' + ErrorMessage);
end;

Aktualizacje transakcji będą powiadamiane w zdarzeniu OnKrakenData.


[
  0,
  [
    [
      "5541.20000",
      "0.15850568",
      "1534614057.321597",
      "s",
      "l",
      ""
    ],
    [
      "6060.00000",
      "0.02455000",
      "1534614057.324998",
      "b",
      "l",
      ""
    ]
  ],
  "trade",
  "XBT/USD"
]

Książka

Poziomy arkusza zleceń. Po subskrypcji publikowana jest migawka przy określonej głębokości; po niej publikowane są aktualizacje poziomów.

Subskrybuj książkę zleceń, wywołując metodę SubscribeBook; należy przekazać parę i głębokość.

  
SubscribeBook(['XBT/USD'], kde10);

W przypadku pomyślnej subskrypcji zostanie wywołane zdarzenie OnKrakenSubscribed:

   
procedure OnKrakenSubscribed(Sender: TObject;ChannelId: Integer; Pair, Subscription, ChannelName: string; 
  ReqID:Integer);
begin
  DoLog('#subscribed: ' + Subscription + ' ' + Pair + ' ' + ChannelName);
end;

Anulowanie subskrypcji przez wywołanie metody UnSubscribeBook:

    
UnSubscribeBook(['XBT/USD'], kde10);

Jeśli anulowanie subskrypcji zakończy się powodzeniem, zostanie wywołane zdarzenie OnKrakenUnSubscribed:

  
procedure OnKrakenUnSubscribed(Sender: TObject; ChannelId: Integer; Pair, Subscription: string; 
  ReqID: Integer);
begin
  DoLog('#unsubscribed: ' + Subscription + ' ' + Pair);
end;

Jeśli podczas próby subskrypcji / anulowania subskrypcji wystąpi błąd, zostanie wywołane zdarzenie OnKrakenSubscriptionError.

   
procedure OnKrakenSubscriptionError(Sender: TObject; ErrorMessage, Pair, Subscription: string; ReqID: Integer);
begin
  DoLog('#subscription error: ' + ErrorMessage);
end;

Aktualizacje księgi będą powiadamiane w zdarzeniu OnKrakenData.

 
[
  0,
  {
    "as": [
      [
          "5541.30000",
          "2.50700000",
          "1534614248.123678"
      ],
      [
          "5541.80000",
          "0.33000000",
          "1534614098.345543"
      ],
      [
          "5542.70000",
          "0.64700000",
          "1534614244.654432"
      ]
    ],
    "bs": [
      [
          "5541.20000",
          "1.52900000",
          "1534614248.765567"
      ],
      [
          "5539.90000",
          "0.30000000",
          "1534614241.769870"
      ],
      [
          "5539.50000",
          "5.00000000",
          "1534613831.243486"
      ]
    ]
  },
  "book-100",
  "XBT/USD"
]

Spread

Kanał spreadów pokazujący najlepszą cenę kupna i sprzedaży dla subskrybowanej pary aktywów. Wiadomość zawiera również wolumeny po stronie kupna i sprzedaży.

Subskrybuj kanał Spread, wywołując metodę SubscribeSpread.

   
SubscribeSpread(['XBT/USD']);

W przypadku pomyślnej subskrypcji zostanie wywołane zdarzenie OnKrakenSubscribed:

   
procedure OnKrakenSubscribed(Sender: TObject;ChannelId: Integer; Pair, Subscription, ChannelName: string; 
  ReqID:Integer);
begin
  DoLog('#subscribed: ' + Subscription + ' ' + Pair + ' ' + ChannelName);
end;

Anulowanie subskrypcji przez wywołanie metody UnSubscribeSpread:

    
UnSubscribeSpread(['XBT/USD']);

Jeśli anulowanie subskrypcji zakończy się powodzeniem, zostanie wywołane zdarzenie OnKrakenUnSubscribed:

   
procedure OnrakenUnSubscribed(Sender: TObject; ChannelId: Integer; Pair, Subscription: string; 
  ReqID: Integer);
begin
  DoLog('#unsubscribed: ' + Subscription + ' ' + Pair);
end;

Jeśli podczas próby subskrypcji / anulowania subskrypcji wystąpi błąd, zostanie wywołane zdarzenie OnKrakenSubscriptionError.

  
procedure OnKrakenSubscriptionError(Sender: TObject; ErrorMessage, Pair, Subscription: string; 
  ReqID: Integer);
begin
  DoLog('#subscription error: ' + ErrorMessage);
end;

Aktualizacje spreadu będą powiadamiane w zdarzeniu OnKrakenData.

 
[
  0,
  [
    "5698.40000",
    "5700.00000",
    "1542057299.545897",
    "1.01234567",
    "0.98765432"
  ],
  "spread",
  "XBT/USD"
]

Inne metody

Można subskrybować i anulować subskrypcję wszystkich kanałów jedną metodą:

  
SubscribeAll(['XBT/USD']);
 
UnSubscribeAll(['XBT/USD']);

Wartość interwału OHLC wynosi 1, jeśli subskrybowane są wszystkie kanały.

 

 

 

Zdarzenia

OnConnect: wywoływane po połączeniu klienta websocket z serwerem.

OnKrakenConnect: wywoływane po pomyślnym połączeniu WebSocket i gdy serwer wyśle status systemu.

OnKrakenSystemStatus: wywoływane przy zmianie statusu systemu.

OnKrakenSubscribed: wywoływane po pomyślnej subskrypcji kanału.

OnKrakenUnSubscribed: wywoływane po pomyślnym anulowaniu subskrypcji kanału.

OnKrakenSubscriptionError: wywoływane, gdy wystąpił błąd podczas próby subskrypcji lub anulowania subskrypcji.

OnKrakenData: wywoływane za każdym razem, gdy subskrypcja kanału otrzymuje aktualizację.