自 sgcWebSockets 4.4.8 起,支持 Kraken 期货 API。
支持以下 API:
WebSocket 公共 API:连接到公共 WebSocket 服务器。
WebSocket 私有 API:连接到私有 WebSocket 服务器,需要 API 密钥和 API 密钥进行服务器认证。
REST 公共 API:连接到公共 REST 服务器。
REST 私有 API:连接到私有 REST 服务器,需要 API 密钥和 API 密钥进行服务器认证。
Kraken 期货 WebSocket 公共 API
无需认证即可使用部分公共频道。示例:可以订阅行情频道,通过 WebSocket 协议获取市场数据更新。
// Subscribe to a ticker calling SubscribeTicker method:
SubscribeTicker(['PI_XBTUSD']);
// If subscription is successful, OnKrakenFuturesSubscribed event will be called:
procedure OnKrakenFuturesSubscribed(Sender: TObject; Feed, ProductId: string);
begin
DoLog('#subscribed: ' + Feed + ' ' + ProductId);
end;
//UnSubscribe calling UnSubscribeTicker method:
UnSubscribeTicker(['PI_XBTUSD']);
//If unsubscription is successful, OnKrakenFuturesUnSubscribed event will be called:
procedure OnKrakenFuturesUnSubscribed(Sender: TObject; Feed, ProductId: string);
begin
DoLog('#unsubscribed: ' + Feed + ' ' + ProductId);
end;
// If there is an error while trying to subscribe / unsubscribe, OnKrakenFuturesError event will be called.
procedure OnKrakenFuturesError(Sender: TObject; Error: string);
begin
DoLog('#error: ' + Error);
end;
Kraken 期货 WebSocket 私有 API
向 WebSocket 私有数据流发出的订阅和取消订阅请求,需要使用用户 api_secret 对挑战消息进行签名。
挑战通过 WebSocket API 公共端(使用 api_key)获取。
已认证请求必须以 JSON 格式同时包含原始挑战消息(original_challenge)和已签名的挑战(signed_challenge)。
如需获取 WebSocket 挑战,必须在 Kraken 选项组件中设置 API 密钥和 API 密钥,api key 由 Kraken 在您的账户中提供。
示例:订阅 AccountLog 私有频道。
// This subscription feed publishes account information.
SubscribeAccountLog();
// Later, you can unsubscribe from AccountLog, calling UnSubscribeAccountLog method
UnSubscribeAccountLog();
Response example from server
{
'feed':'account_log_snapshot',
'logs':[
{
'id':1690,
'date':'2019-07-11T08:00:00.000Z',
'asset':'bch',
'info':'funding
rate change',
'booking_uid':'86fdc252-1b6e-40ec-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
}
]
}
Kraken 期货 REST 公共 API
使用 HTTP 协议访问公共 REST 方法。示例:调用 GetOrderBook 获取某交易品种订单簿的快照。
KrakenFutures.REST_API.GetOrderBook('PI_XBTUSD');
Kraken 期货 REST 私有 API
使用 REST 私有 API 访问您的私有账户、下单、取消订单……
oOrder := TsgcHTTPKrakenFuturesOrder.Create; Try oOrder.Side := kosfBuy; oOrder.Symbol := 'PI_XBTUSD'; oOrder.OrderType := kotfMKT; oOrder.Size := 1; KrakenFutures.REST_API.SendOrder(oOrder); Finally oOrder.Free; End;
Kraken 期货 API
连接到 Kraken 期货服务器:WebSocket 和 REST API
https://www.esegece.com/help/sgcWebSockets/#t=Components%2FAPIs%2FAPI%2FAPI_Kraken_Futures.htm