API Kraken 期货 | WebSockets 私有 API

连接

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

 

},

 

      ...

 

]

 

}