API Kraken | WebSockets Public API

Conexão

URL: wss://ws.kraken.com (v1) ou wss://ws.kraken.com/v2 (v2, recomendado)

O componente agora suporta WebSocket API v2 através da propriedade Version (padrão: 2). Defina Kraken.Version := 1 para utilizar o endpoint legado v1.

 

Assim que o socket estiver aberto, você pode assinar um canal público enviando uma mensagem de requisição de assinatura.

 

Considerações Gerais

 

Supported Pairs

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

 

Métodos

Ping

O cliente pode enviar ping ao servidor para determinar se a conexão está ativa, e o servidor responde com pong.

Este é um ping em nível de aplicação, ao contrário do ping padrão no padrão WebSockets, que é iniciado pelo servidor

Ticker

As informações de ticker incluem os melhores preços de ask e bid, volume de 24h, último preço negociado, preço médio ponderado por volume, etc. para um determinado par de moedas. Uma mensagem de ticker é publicada toda vez que uma negociação ou um grupo de negociações ocorre.

Faça subscribe a um ticker chamando o método SubscribeTicker:


SubscribeTicker(['XBT/USD']);

Se a assinatura for bem-sucedida, o evento OnKrakenSubscribed será chamado:


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

Cancelar a assinatura chamando o método UnSubscribeTicker:


UnSubscribeTicker(['XBT/USD']);

Se o cancelamento da assinatura for bem-sucedido, o evento OnKrakenUnSubscribed será chamado:


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

Se houver um erro ao tentar assinar / cancelar a assinatura, o evento OnKrakenSubscriptionError será chamado.


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

As atualizações de ticker serão notificadas no evento 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

Quando assinado para OHLC, um snapshot do último candle válido (independentemente do endtime) será enviado, seguido de atualizações do candle em andamento. Por exemplo, se uma assinatura for feita para um candle de 1 min e não houver trades por 5 min, um snapshot do último candle de 1 min de 5 min atrás será publicado. O endtime pode ser usado para determinar que se trata de um candle antigo.

Assine um OHLC chamando o método SubscribeOHLC, você deve passar o par e o intervalo.


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

Se a assinatura for bem-sucedida, o evento OnKrakenSubscribed será chamado:


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

Cancele a assinatura chamando o método UnSubscribeOHLC:

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

Se o cancelamento da assinatura for bem-sucedido, o evento OnKrakenUnSubscribed será chamado:

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

Se houver um erro ao tentar assinar / cancelar a assinatura, o evento OnKrakenSubscriptionError será chamado.

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

As atualizações de OHLC serão notificadas no evento OnKrakenData.


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

Trade

Feed de negociações para um par de moedas.

Assine o feed Trade chamando o método SubscribeTrade.

 
SubscribeTrade(['XBT/USD']);

Se a assinatura for bem-sucedida, o evento OnKrakenSubscribed será chamado:

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

UnSubscribe chamando o método UnSubscribeTrade:

 
UnSubscribeTrade(['XBT/USD']);

Se o cancelamento da assinatura for bem-sucedido, o evento OnKrakenUnSubscribed será chamado:

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

Se houver um erro ao tentar assinar / cancelar a assinatura, o evento OnKrakenSubscriptionError será chamado.

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

As atualizações de trade serão notificadas no evento OnKrakenData.


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

Book

Níveis do livro de ordens. Na assinatura, um snapshot será publicado na profundidade especificada; após o snapshot, as atualizações de nível serão publicadas.

Assine um Book chamando o método SubscribeBook; você deve passar o par e a profundidade (depth).

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

Se a assinatura for bem-sucedida, o evento OnKrakenSubscribed será chamado:

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

Cancelar a assinatura chamando o método UnSubscribeBook:

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

Se o cancelamento da assinatura for bem-sucedido, o evento OnKrakenUnSubscribed será chamado:

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

Se houver um erro ao tentar assinar / cancelar a assinatura, o evento OnKrakenSubscriptionError será chamado.

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

As atualizações do book serão notificadas no evento 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

Feed de spread para mostrar o melhor preço de compra e venda para o par de ativos assinado. O volume de compra e o volume de venda também fazem parte da mensagem.

Assina o feed de Spread chamando o método SubscribeSpread.

   
SubscribeSpread(['XBT/USD']);

Se a assinatura for bem-sucedida, o evento OnKrakenSubscribed será chamado:

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

Cancele a assinatura chamando o método UnSubscribeSpread:

    
UnSubscribeSpread(['XBT/USD']);

Se o cancelamento da assinatura for bem-sucedido, o evento OnKrakenUnSubscribed será chamado:

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

Se houver um erro ao tentar assinar / cancelar a assinatura, o evento OnKrakenSubscriptionError será chamado.

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

As atualizações de spread serão notificadas no evento OnKrakenData.

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

Outros métodos

Você pode assinar / cancelar a assinatura de todos os canais com um único método:

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

O valor do intervalo OHLC é 1 se todos os canais estiverem assinados.

 

 

 

Eventos

OnConnect: quando o cliente websocket está conectado ao servidor.

OnKrakenConnect: chamado após conexão websocket bem-sucedida e quando o servidor envia o status do sistema.

OnKrakenSystemStatus: chamado quando o status do sistema muda.

OnKrakenSubscribed: chamado após uma assinatura bem-sucedida a um canal.

OnKrakenUnSubscribed: chamado após uma desinscrição bem-sucedida de um canal.

OnKrakenSubscriptionError: chamado se houver um erro ao tentar assinar / cancelar a assinatura.

OnKrakenData: chamado toda vez que uma assinatura de canal recebe uma atualização.