URL: wss://ws.kraken.com (v1) 或 wss://ws.kraken.com/v2 (v2,推荐)
该组件现在通过 Version 属性支持 WebSocket API v2(默认值为 2)。将 Kraken.Version := 1 设置为使用旧版 v1 端点。
套接字打开后,您可以通过发送订阅请求消息来订阅公共频道。
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
客户端可向服务器发送 ping 以确认连接是否存活,服务器以 pong 响应。
这是应用层 ping,与 WebSocket 标准中由服务器发起的默认 ping 不同。
Ticker 信息包含给定货币对的最优买价和卖价、24 小时成交量、最新成交价、成交量加权平均价等。每次有成交或一批成交发生时,都会发布一条 Ticker 消息。
调用 SubscribeTicker 方法订阅行情数据:
SubscribeTicker(['XBT/USD']);
如果订阅成功,将调用 OnKrakenSubscribed 事件:
procedure OnKrakenSubscribed(Sender: TObject;ChannelId: Integer; Pair, Subscription, ChannelName: string;
ReqID:Integer);
begin
DoLog('#subscribed: ' + Subscription + ' ' + Pair + ' ' + ChannelName);
end;
调用 UnSubscribeTicker 方法取消订阅:
UnSubscribeTicker(['XBT/USD']);
若取消订阅成功,将调用 OnKrakenUnSubscribed 事件:
procedure OnKrakenUnSubscribed(Sender: TObject; ChannelId: Integer; Pair, Subscription: string;
ReqID: Integer);
begin
DoLog('#unsubscribed: ' + Subscription + ' ' + Pair);
end;
如果订阅/取消订阅时发生错误,将调用 OnKrakenSubscriptionError 事件。
procedure OnKrakenSubscriptionError(Sender: TObject; ErrorMessage, Pair, Subscription: string;
ReqID: Integer);
begin
DoLog('#subscription error: ' + ErrorMessage);
end;
行情更新将通过 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 后,将首先发送最后一根有效蜡烛的快照(不考虑结束时间),然后推送当前正在运行的蜡烛的更新。例如,如果订阅了 1 分钟蜡烛,而 5 分钟内没有成交,则会发布 5 分钟前最后一根 1 分钟蜡烛的快照。可以使用结束时间来判断该蜡烛是否为旧蜡烛。
调用 SubscribeOHLC 方法订阅 OHLC,需传入交易对和时间间隔。
SubscribeOHLC(['XBT/USD'], kin1min);
如果订阅成功,将调用 OnKrakenSubscribed 事件:
procedure OnKrakenSubscribed(Sender: TObject;ChannelId: Integer; Pair, Subscription, ChannelName: string;
ReqID:Integer);
begin
DoLog('#subscribed: ' + Subscription + ' ' + Pair + ' ' + ChannelName);
end;
调用 UnSubscribeOHLC 方法取消订阅:
UnSubscribeOHLC(['XBT/USD'], kin1min);
若取消订阅成功,将调用 OnKrakenUnSubscribed 事件:
procedure OnKrakenUnSubscribed(Sender: TObject; ChannelId: Integer; Pair, Subscription: string;
ReqID: Integer);
begin
DoLog('#unsubscribed: ' + Subscription + ' ' + Pair);
end;
如果订阅/取消订阅时发生错误,将调用 OnKrakenSubscriptionError 事件。
procedure OnKrakenSubscriptionError(Sender: TObject; ErrorMessage, Pair, Subscription: string;
ReqID: Integer);
begin
DoLog('#subscription error: ' + ErrorMessage);
end;
OHLC 更新将在 OnKrakenData 事件中通知。
[
42,
[
"1542057314.748456",
"1542057360.435743",
"3586.70000",
"3586.70000",
"3586.60000",
"3586.60000",
"3586.68894",
"0.03373000",
2
],
"ohlc-5",
"XBT/USD"
]
货币对的交易数据流。
调用 SubscribeTrade 方法订阅交易数据源。
SubscribeTrade(['XBT/USD']);
如果订阅成功,将调用 OnKrakenSubscribed 事件:
procedure OnKrakenSubscribed(Sender: TObject;ChannelId: Integer; Pair, Subscription, ChannelName:
string; ReqID:Integer);
begin
DoLog('#subscribed: ' + Subscription + ' ' + Pair + ' ' + ChannelName);
end;
调用 UnSubscribeTrade 方法取消订阅:
UnSubscribeTrade(['XBT/USD']);
若取消订阅成功,将调用 OnKrakenUnSubscribed 事件:
procedure OnrakenUnSubscribed(Sender: TObject; ChannelId: Integer; Pair, Subscription: string;
ReqID: Integer);
begin
DoLog('#unsubscribed: ' + Subscription + ' ' + Pair);
end;
如果订阅/取消订阅时发生错误,将调用 OnKrakenSubscriptionError 事件。
procedure OnKrakenSubscriptionError(Sender: TObject; ErrorMessage, Pair, Subscription: string;
ReqID: Integer);
begin
DoLog('#subscription error: ' + ErrorMessage);
end;
成交更新将在 OnKrakenData 事件中通知。
[
0,
[
[
"5541.20000",
"0.15850568",
"1534614057.321597",
"s",
"l",
""
],
[
"6060.00000",
"0.02455000",
"1534614057.324998",
"b",
"l",
""
]
],
"trade",
"XBT/USD"
]
订单簿层级。订阅时,将在指定深度发布一个快照,快照之后将发布层级更新。
调用 SubscribeBook 方法订阅 Book,需传入货币对和深度。
SubscribeBook(['XBT/USD'], kde10);
如果订阅成功,将调用 OnKrakenSubscribed 事件:
procedure OnKrakenSubscribed(Sender: TObject;ChannelId: Integer; Pair, Subscription, ChannelName: string;
ReqID:Integer);
begin
DoLog('#subscribed: ' + Subscription + ' ' + Pair + ' ' + ChannelName);
end;
调用 UnSubscribeBook 方法取消订阅:
UnSubscribeBook(['XBT/USD'], kde10);
若取消订阅成功,将调用 OnKrakenUnSubscribed 事件:
procedure OnKrakenUnSubscribed(Sender: TObject; ChannelId: Integer; Pair, Subscription: string;
ReqID: Integer);
begin
DoLog('#unsubscribed: ' + Subscription + ' ' + Pair);
end;
如果订阅/取消订阅时发生错误,将调用 OnKrakenSubscriptionError 事件。
procedure OnKrakenSubscriptionError(Sender: TObject; ErrorMessage, Pair, Subscription: string; ReqID: Integer);
begin
DoLog('#subscription error: ' + ErrorMessage);
end;
书单更新将通过 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"
]
展价数据流,显示已订阅资产对的最佳买卖价。买量和卖量也是消息的一部分。
调用 SubscribeSpread 方法订阅展价数据流。
SubscribeSpread(['XBT/USD']);
如果订阅成功,将调用 OnKrakenSubscribed 事件:
procedure OnKrakenSubscribed(Sender: TObject;ChannelId: Integer; Pair, Subscription, ChannelName: string;
ReqID:Integer);
begin
DoLog('#subscribed: ' + Subscription + ' ' + Pair + ' ' + ChannelName);
end;
调用 UnSubscribeSpread 方法取消订阅:
UnSubscribeSpread(['XBT/USD']);
若取消订阅成功,将调用 OnKrakenUnSubscribed 事件:
procedure OnrakenUnSubscribed(Sender: TObject; ChannelId: Integer; Pair, Subscription: string;
ReqID: Integer);
begin
DoLog('#unsubscribed: ' + Subscription + ' ' + Pair);
end;
如果订阅/取消订阅时发生错误,将调用 OnKrakenSubscriptionError 事件。
procedure OnKrakenSubscriptionError(Sender: TObject; ErrorMessage, Pair, Subscription: string;
ReqID: Integer);
begin
DoLog('#subscription error: ' + ErrorMessage);
end;
价差更新将通过 OnKrakenData 事件通知。
[
0,
[
"5698.40000",
"5700.00000",
"1542057299.545897",
"1.01234567",
"0.98765432"
],
"spread",
"XBT/USD"
]
您可以通过一个方法订阅/取消订阅所有频道:
SubscribeAll(['XBT/USD']);
UnSubscribeAll(['XBT/USD']);
如果所有已订阅频道均已订阅,OHLC 间隔值为 1。
OnConnect:当 WebSocket 客户端连接到服务器时。
OnKrakenConnect:在 WebSocket 成功连接且服务器发送系统状态后调用。
OnKrakenSystemStatus:当系统状态变化时调用。
OnKrakenSubscribed:成功订阅频道后调用。
OnKrakenUnSubscribed: 在成功取消订阅某个频道后调用。
OnKrakenSubscriptionError: 在订阅/取消订阅出错时调用。
OnKrakenData:每次频道订阅有更新时调用。