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.
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
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
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"
]
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"
]
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"
]
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"
]
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"
]
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.
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.