Kraken Futures API

· Composants

Depuis sgcWebSockets 4.4.8, l'API Kraken Futures est prise en charge.

https://futures.kraken.com/

Les API suivantes sont prises en charge :

WebSockets Public API : se connecte à un serveur WebSocket public.
WebSockets Private API : se connecte à un serveur WebSocket privé et exige une API Key et un API Secret pour s'authentifier auprès du serveur.
REST Public API : se connecte à un serveur REST public.
REST Private API : se connecte à un serveur REST public et exige une API Key et un API Secret pour s'authentifier auprès du serveur.

Kraken Futures WebSocket Public API 

Certains canaux publics sont fournis sans authentification. Exemple : tu peux t'abonner au canal Ticker et obtenir des mises à jour de données de marché via le protocole 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 

Les requêtes subscribe et unsubscribe aux feeds privés WebSocket exigent un message challenge signé avec l'api_secret de l'utilisateur.

Le challenge s'obtient comme illustré dans la section WebSocket API Public (en utilisant l'api_key).

Les requêtes authentifiées doivent inclure à la fois le message challenge original (original_challenge) et celui signé (signed_challenge) au format JSON.

Pour obtenir un challenge WebSockets, une API Key et un API Secret doivent être définis dans le composant Kraken Options, la clé API fournie par Kraken dans ton compte. 

Exemple : abonnement au canal privé 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 

Utilise le protocole HTTP pour accéder aux méthodes publiques REST. Exemple : appelle GetOrderBook pour obtenir un snapshot du carnet d'ordres d'un symbole.

KrakenFutures.REST_API.GetOrderBook('PI_XBTUSD');

Kraken Futures REST Private API 

Utilise l'API REST privée pour accéder à ton compte privé, envoyer des ordres, annuler des ordres…

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

Connecte-toi au serveur Kraken Futures : API WebSocket et REST https://www.esegece.com/help/sgcWebSockets/#t=Components%2FAPIs%2FAPI%2FAPI_Kraken_Futures.htm