URL: wss://ws.kraken.com (v1) o wss://ws.kraken.com/v2 (v2, consigliato)
Il componente ora supporta WebSocket API v2 tramite la proprietà Version (predefinito: 2). Impostare Kraken.Version := 1 per utilizzare l'endpoint v1 legacy.
Una volta aperto il socket è possibile sottoscriversi a un canale pubblico inviando un messaggio di richiesta di sottoscrizione.
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
Il client può inviare un ping al server per verificare se la connessione è attiva; il server risponde con un pong.
Si tratta di un ping a livello applicativo, al contrario del ping predefinito dello standard WebSockets che è avviato dal server
Le informazioni del ticker includono i prezzi di best ask e best bid, il volume nelle 24 ore, l'ultimo prezzo di trade, il prezzo medio ponderato per volume, ecc. per una determinata coppia di valute. Un messaggio ticker viene pubblicato ogni volta che avviene un trade o un gruppo di trade.
Sottoscrivere un ticker chiamando il metodo SubscribeTicker:
SubscribeTicker(['XBT/USD']);
Se la sottoscrizione ha esito positivo, verrà chiamato l'evento OnKrakenSubscribed:
procedure OnKrakenSubscribed(Sender: TObject;ChannelId: Integer; Pair, Subscription, ChannelName: string;
ReqID:Integer);
begin
DoLog('#subscribed: ' + Subscription + ' ' + Pair + ' ' + ChannelName);
end;
Annulla l'abbonamento chiamando il metodo UnSubscribeTicker:
UnSubscribeTicker(['XBT/USD']);
Se l'annullamento della sottoscrizione ha esito positivo, verrà chiamato l'evento OnKrakenUnSubscribed:
procedure OnKrakenUnSubscribed(Sender: TObject; ChannelId: Integer; Pair, Subscription: string;
ReqID: Integer);
begin
DoLog('#unsubscribed: ' + Subscription + ' ' + Pair);
end;
Se si verifica un errore durante il tentativo di sottoscrizione / annullamento della sottoscrizione, verrà chiamato l'evento OnKrakenSubscriptionError.
procedure OnKrakenSubscriptionError(Sender: TObject; ErrorMessage, Pair, Subscription: string;
ReqID: Integer);
begin
DoLog('#subscription error: ' + ErrorMessage);
end;
Gli aggiornamenti del ticker verranno notificati nell'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 si sottoscrive OHLC, viene inviato uno snapshot dell'ultima candela valida (indipendentemente dall'orario di fine), seguito dagli aggiornamenti alla candela in corso. Ad esempio, se si sottoscrive una candela da 1 minuto e non ci sono state transazioni per 5 minuti, verrà pubblicato uno snapshot dell'ultima candela da 1 minuto di 5 minuti fa. L'orario di fine può essere utilizzato per determinare che si tratta di una candela precedente.
Sottoscrivere un OHLC chiamando il metodo SubscribeOHLC; è necessario passare la coppia e l'intervallo.
SubscribeOHLC(['XBT/USD'], kin1min);
Se la sottoscrizione ha successo, verrà chiamato l'evento OnKrakenSubscribed:
procedure OnKrakenSubscribed(Sender: TObject;ChannelId: Integer; Pair, Subscription, ChannelName: string;
ReqID:Integer);
begin
DoLog('#subscribed: ' + Subscription + ' ' + Pair + ' ' + ChannelName);
end;
Disiscrizione tramite il metodo UnSubscribeOHLC:
UnSubscribeOHLC(['XBT/USD'], kin1min);
Se l'annullamento della sottoscrizione ha esito positivo, verrà chiamato l'evento OnKrakenUnSubscribed:
procedure OnKrakenUnSubscribed(Sender: TObject; ChannelId: Integer; Pair, Subscription: string;
ReqID: Integer);
begin
DoLog('#unsubscribed: ' + Subscription + ' ' + Pair);
end;
Se si verifica un errore durante il tentativo di sottoscrizione / annullamento della sottoscrizione, verrà chiamato l'evento OnKrakenSubscriptionError.
procedure OnKrakenSubscriptionError(Sender: TObject; ErrorMessage, Pair, Subscription: string;
ReqID: Integer);
begin
DoLog('#subscription error: ' + ErrorMessage);
end;
Gli aggiornamenti OHLC verranno notificati nell'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 di trading per una coppia di valute.
Sottoscrivere il feed Trade chiamando il metodo SubscribeTrade.
SubscribeTrade(['XBT/USD']);
Se la sottoscrizione ha successo, verrà chiamato l'evento OnKrakenSubscribed:
procedure OnKrakenSubscribed(Sender: TObject;ChannelId: Integer; Pair, Subscription, ChannelName:
string; ReqID:Integer);
begin
DoLog('#subscribed: ' + Subscription + ' ' + Pair + ' ' + ChannelName);
end;
Annullare la sottoscrizione chiamando il metodo UnSubscribeTrade:
UnSubscribeTrade(['XBT/USD']);
Se l'annullamento della sottoscrizione ha esito positivo, verrà chiamato l'evento OnKrakenUnSubscribed:
procedure OnrakenUnSubscribed(Sender: TObject; ChannelId: Integer; Pair, Subscription: string;
ReqID: Integer);
begin
DoLog('#unsubscribed: ' + Subscription + ' ' + Pair);
end;
Se si verifica un errore durante il tentativo di sottoscrizione / annullamento della sottoscrizione, verrà chiamato l'evento OnKrakenSubscriptionError.
procedure OnKrakenSubscriptionError(Sender: TObject; ErrorMessage, Pair, Subscription: string;
ReqID: Integer);
begin
DoLog('#subscription error: ' + ErrorMessage);
end;
Gli aggiornamenti delle operazioni verranno notificati nell'evento OnKrakenData.
[
0,
[
[
"5541.20000",
"0.15850568",
"1534614057.321597",
"s",
"l",
""
],
[
"6060.00000",
"0.02455000",
"1534614057.324998",
"b",
"l",
""
]
],
"trade",
"XBT/USD"
]
Livelli dell'order book. Alla sottoscrizione verrà pubblicato uno snapshot alla profondità specificata; dopo lo snapshot verranno pubblicati gli aggiornamenti dei livelli.
Iscriversi a un Book chiamando il metodo SubscribeBook; è necessario passare la coppia e la profondità.
SubscribeBook(['XBT/USD'], kde10);
Se la sottoscrizione ha successo, verrà chiamato l'evento OnKrakenSubscribed:
procedure OnKrakenSubscribed(Sender: TObject;ChannelId: Integer; Pair, Subscription, ChannelName: string;
ReqID:Integer);
begin
DoLog('#subscribed: ' + Subscription + ' ' + Pair + ' ' + ChannelName);
end;
Annullare l'iscrizione chiamando il metodo UnSubscribeBook:
UnSubscribeBook(['XBT/USD'], kde10);
Se l'annullamento della sottoscrizione ha esito positivo, verrà chiamato l'evento OnKrakenUnSubscribed:
procedure OnKrakenUnSubscribed(Sender: TObject; ChannelId: Integer; Pair, Subscription: string;
ReqID: Integer);
begin
DoLog('#unsubscribed: ' + Subscription + ' ' + Pair);
end;
Se si verifica un errore durante il tentativo di sottoscrizione / annullamento della sottoscrizione, verrà chiamato l'evento OnKrakenSubscriptionError.
procedure OnKrakenSubscriptionError(Sender: TObject; ErrorMessage, Pair, Subscription: string; ReqID: Integer);
begin
DoLog('#subscription error: ' + ErrorMessage);
end;
Gli aggiornamenti del book verranno notificati nell'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 spread per mostrare il miglior prezzo bid e ask per la coppia di asset sottoscritta. Il volume bid e il volume ask fanno parte del messaggio.
Iscriversi al feed Spread chiamando il metodo SubscribeSpread.
SubscribeSpread(['XBT/USD']);
Se la sottoscrizione ha successo, verrà chiamato l'evento OnKrakenSubscribed:
procedure OnKrakenSubscribed(Sender: TObject;ChannelId: Integer; Pair, Subscription, ChannelName: string;
ReqID:Integer);
begin
DoLog('#subscribed: ' + Subscription + ' ' + Pair + ' ' + ChannelName);
end;
Annullare la sottoscrizione chiamando il metodo UnSubscribeSpread:
UnSubscribeSpread(['XBT/USD']);
Se l'annullamento della sottoscrizione ha esito positivo, verrà chiamato l'evento OnKrakenUnSubscribed:
procedure OnrakenUnSubscribed(Sender: TObject; ChannelId: Integer; Pair, Subscription: string;
ReqID: Integer);
begin
DoLog('#unsubscribed: ' + Subscription + ' ' + Pair);
end;
Se si verifica un errore durante il tentativo di sottoscrizione / annullamento della sottoscrizione, verrà chiamato l'evento OnKrakenSubscriptionError.
procedure OnKrakenSubscriptionError(Sender: TObject; ErrorMessage, Pair, Subscription: string;
ReqID: Integer);
begin
DoLog('#subscription error: ' + ErrorMessage);
end;
Gli aggiornamenti dello spread verranno notificati nell'evento OnKrakenData.
[
0,
[
"5698.40000",
"5700.00000",
"1542057299.545897",
"1.01234567",
"0.98765432"
],
"spread",
"XBT/USD"
]
È possibile sottoscrivere/annullare la sottoscrizione di tutti i canali con un unico metodo:
SubscribeAll(['XBT/USD']);
UnSubscribeAll(['XBT/USD']);
Il valore dell'intervallo OHLC è 1 se tutti i canali sono sottoscritti.
OnConnect: quando il client WebSocket è connesso al server.
OnKrakenConnect: chiamato dopo la connessione websocket riuscita e quando il server invia lo stato del sistema.
OnKrakenSystemStatus: chiamato quando lo stato del sistema cambia.
OnKrakenSubscribed: chiamato dopo una sottoscrizione riuscita a un canale.
OnKrakenUnSubscribed: chiamato dopo una disiscrizione riuscita da un canale.
OnKrakenSubscriptionError: chiamato se si verifica un errore durante il tentativo di sottoscrizione / annullamento della sottoscrizione.
OnKrakenData: chiamato ogni volta che un'iscrizione a un canale ha un aggiornamento.