API Kraken Futures

· Componenti

Da sgcWebSockets 4.4.8 è supportata l'API Kraken Futures.

https://futures.kraken.com/

Le seguenti API sono supportate:

WebSockets Public API: si connette a un server WebSocket pubblico.
WebSockets Private API: si connette a un server WebSocket privato e richiede una API Key e API Secret per autenticarsi con il server.
REST Public API: si connette a un server REST pubblico.
REST Private API: si connette a un server REST pubblico e richiede una API Key e API Secret per autenticarsi con il server.

API WebSocket pubblica di Kraken Futures 

Alcuni canali pubblici sono forniti senza autenticazione. Esempio: puoi iscriverti al canale Ticker e ottenere aggiornamenti dei dati di mercato tramite il protocollo 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;

API WebSocket privata di Kraken Futures 

Le richieste di sottoscrizione e cancellazione ai feed privati WebSocket richiedono un messaggio di challenge firmato con l'api_secret dell'utente.

Il challenge si ottiene come mostrato nella sezione API WebSocket pubblica (usando l'api_key).

Le richieste autenticate devono includere sia il messaggio di challenge originale (original_challenge) sia quello firmato (signed_challenge) in formato JSON.

Per ottenere un Challenge WebSocket, deve essere impostata una API Key e un API Secret nel componente Kraken Options, l'api key fornita da Kraken nel tuo account. 

Esempio: Iscriviti al canale privato 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
}
]
}

API REST pubblica di Kraken Futures 

Usa il protocollo HTTP per accedere ai metodi REST pubblici. Esempio: chiama GetOrderBook per ottenere uno snapshot del Order Book di un simbolo.

KrakenFutures.REST_API.GetOrderBook('PI_XBTUSD');

API REST privata di Kraken Futures 

Usa l'API REST privata per accedere al tuo account privato, inviare ordini, cancellare ordini...

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;
});

API Kraken Futures

Connettiti al server Kraken Futures: API WebSocket e REST https://www.esegece.com/help/sgcWebSockets/#t=Components%2FAPIs%2FAPI%2FAPI_Kraken_Futures.htm