From sgcWebSockets 4.4.8 Kraken Futures API is supported
Obsługiwane są następujące API:
WebSockets Public API: łączy się z publicznym serwerem WebSocket.
WebSockets Private API: łączy się z prywatnym serwerem WebSocket i wymaga klucza API i sekretu API do uwierzytelnienia wobec serwera.
REST Public API: łączy się z publicznym serwerem REST.
REST Private API: łączy się z prywatnym serwerem REST i wymaga klucza API i sekretu API do uwierzytelnienia wobec serwera.
Kraken Futures WebSocket Public API
Niektóre publiczne kanały są dostępne bez uwierzytelniania. Przykład: możesz subskrybować kanał Ticker i otrzymywać aktualizacje danych rynkowych przez protokół 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 Futures WebSocket Private API
Żądania subskrypcji i anulowania subskrypcji prywatnych kanałów WebSocket wymagają podpisanej wiadomości challenge z użyciem api_secret użytkownika.
Challenge jest uzyskiwany tak jak pokazano w sekcji WebSocket API Public (z użyciem api_key).
Uwierzytelnione żądania muszą zawierać zarówno oryginalną wiadomość challenge (original_challenge), jak i podpisaną (signed_challenge) w formacie JSON.
In order to get a Websockets Challenge, an API Key and API Secret must be set in Kraken Options Component, the api key provided by Kraken in your account
Przykład: subskrypcja prywatnego kanału 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 Futures REST Public API
Użyj protokołu HTTP, aby uzyskać dostęp do publicznych metod REST. Przykład: wywołaj GetOrderBook, aby pobrać migawkę Arkusza Zleceń dla danego symbolu.
KrakenFutures.REST_API.GetOrderBook('PI_XBTUSD');
Kraken Futures REST Private API
Użyj prywatnego REST API, aby uzyskać dostęp do swojego prywatnego konta, wysyłać zlecenia, anulować zlecenia...
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;});
