URL: wss://futures.kraken.com/ws/v1
订阅和取消订阅 WebSocket 私有数据流的请求需要使用用户 api_secret 签名的挑战消息。
如 WebSocket API Public 部分所示(使用 api_key),可获取到挑战值。
经身份验证的请求必须以 JSON 格式同时包含原始挑战消息(original_challenge)和已签名的挑战(signed_challenge)。
为了获取 Websocket Challenge,必须在 Kraken Options 组件中设置 API Key 和 API Secret,即 Kraken 在您账户中提供的 API 密钥
Kraken.ApiKey := 'api key';
Kraken.ApiSecret := 'api secret';
此订阅频道发布用户未结订单的相关信息,并额外提供所有因未能与订单簿撮合而失败的只挂单(post-only)订单的详细信息。
SubscribeOpenOrdersVerbose();
之后,您可以取消订阅 OpenOrdersVerbose,调用 UnSubscribeOpenOrdersVerbose 方法
UnSubscribeOpenOrdersVerbose();
服务器的响应示例
{ 'feed':'open_orders_verbose_snapshot', 'account':'0f9c23b8-63e2-40e4-9592-6d5aa57c12ba', 'orders':[
{ 'instrument':'PI_XBTUSD', 'time':1567428848005, 'last_update_time':1567428848005, 'qty':100.0, 'filled':0.0, 'limit_price':8500.0, 'stop_price':0.0, 'type':'limit', 'order_id':'566942c8-a3b5-4184-a451-622b09493129', 'direction':0, 'reduce_only':False } ]}
此订阅源发布用户账户的未平仓头寸。
SubscribeOpenPositions();
稍后,您可以通过调用 UnSubscribeOpenPositions 方法取消订阅 OpenPositions
UnSubscribeOpenPositions();
服务器的响应示例
{
"feed": "open_positions",
"account": "DemoUser",
"positions": [{
"instrument": "fi_xbtusd_180316",
"balance": 2000.0,
"entry_price": 11675.86541981,
"mark_price": 11090.0,
"index_price": 12290.550000000001,
"pnl": -0.00905299
}]
}
此订阅数据流发布账户信息。
SubscribeAccountLog();
之后,您可以调用 UnSubscribeAccountLog 方法取消订阅 AccountLog
UnSubscribeAccountLog();
服务器的响应示例
{
'feed': 'account_log_snapshot',
'logs': [{
'id': 1690,
'date': '2019-07-11T08:00:00.000Z',
'asset': 'bch',
'info': 'funding
rate change ','
booking_uid ':'
86 fdc252 - 1 b6e - 40 ec - ac1d - c7bd46ddeebf ','
margin_account ':'
f - bch: usd ','
old_balance ':0.01215667051,'
new_balance ':0.01215736653,'
old_average_entry_price ':0.0,'
new_average_entry_price ':0.0,'
trade_price ':0.0,'
mark_price ':0.0,'
realized_pnl ':0.0,'
fee ':0.0,'
execution ':'
','
collateral ':'
bch ','
funding_rate ':-8.7002552653e-08,'
realized_funding ':6.9602e-07}]
}
此订阅源发布成交信息。
SubscribeFills();
之后,您可以通过调用 UnSubscribeFills 方法取消订阅 Fills
UnSubscribeFills();
服务器的响应示例
{
"feed":"fills_snapshot",
"account":"DemoUser",
"fills":[
{
"instrument":"FI_XBTUSD_200925",
"time":1600256910739,
"price":10937.5,
"seq":36,
"buy":true,
"qty":5000.0,
"order_id":"9e30258b-5a98-4002-968a-5b0e149bcfbf",
"fill_id":"cad76f07-814e-4dc6-8478-7867407b6bff",
"fill_type":"maker",
"fee_paid":-0.00009142857,
"fee_currency":"BTC"
}]
}
此订阅推送用户未结订单的相关信息。
SubscribeOpenOrders();
之后,您可以通过调用 UnSubscribeOpenOrders 方法取消订阅 OpenOrders
UnSubscribeOpenOrders();
服务器的响应示例
{
"feed": "open_orders_snapshot",
"account": "e258dba9-4dd4-4da5-bfef-75beb91c098e",
"orders": [
{
"instrument": "PI_XBTUSD",
"time": 1612275024153,
"last_update_time": 1612275024153,
"qty": 1000,
"filled": 0,
"limit_price": 34900,
"stop_price": 13789,
"type": "stop",
"order_id": "723ba95f-13b7-418b-8fcf-ab7ba6620555",
"direction": 1,
"reduce_only": false,
"triggerSignal": "last"
}
]
}
此订阅数据流返回客户账户的余额和保证金信息。
SubscribeAccountBalanceAndMargins();
稍后,您可以调用 UnSubscribeAccountBalanceAndMargins 方法取消订阅账户余额
UnSubscribeAccountBalanceAndMargins();
服务器的响应示例
{
"feed": "account_balances_and_margins",
"account": "DemoUser",
"margin_accounts": [
{
"name": "xbt",
"balance": 0,
"pnl": 0,
"funding": 0,
"pv": 0,
"am": 0,
"im": 0,
"mm": 0
},
{
"name": "f-xbt:usd",
"balance": 9.99730211055,
"pnl": -0.00006034858674327812,
"funding": 0,
"pv": 9.997241761963258,
"am": 9.99666885201038,
"im": 0.0005729099528781564,
"mm": 0.0002864549764390782
},
],
"seq": 14
}
此订阅源向客户端发布通知。
SubscribeNotifications();
稍后,您可以调用 UnSubscribeNotifications 方法取消订阅通知
UnSubscribeNotifications();
服务器的响应示例
{
"feed":"notifications_auth",
"notifications":[
{
"id":5,
"type":"market",
"priority":"low",
"note":"描述通知的说明。",
"effective_time":1520288300000
},
...
]
}