Kraken Futures API

· 컴포넌트

sgcWebSockets 4.4.8부터 Kraken Futures API가 지원돼요.

https://futures.kraken.com/

다음 API들이 지원돼요:

WebSockets Public API: 공개 WebSocket 서버에 연결해요.
WebSockets Private API: 비공개 WebSocket 서버에 연결하며 서버 인증을 위해 API 키와 API Secret이 필요해요.
REST Public API: 공개 REST 서버에 연결해요.
REST Private API: 공개 REST 서버에 연결하며 서버 인증을 위해 API 키와 API Secret이 필요해요.

Kraken Futures WebSocket Public API 

일부 공개 채널은 인증 없이 제공돼요. 예시: Ticker 채널을 구독해 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 

WebSocket 비공개 피드에 대한 구독 및 구독 취소 요청에는 사용자 api_secret으로 서명된 challenge 메시지가 필요해요.

challenge는 WebSocket API Public 섹션에서 보여주는 방식대로 얻을 수 있어요(api_key 사용).

인증된 요청에는 원본 challenge 메시지(original_challenge)와 서명된 challenge(signed_challenge) 모두를 JSON 형식으로 포함해야 해요.

WebSocket Challenge를 얻으려면 Kraken Options 컴포넌트에 API 키와 API Secret을 설정해야 해요. API 키는 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 Futures REST Public API 

HTTP 프로토콜을 사용해 공개 REST 메서드에 접근하세요. 예시: GetOrderBook을 호출해 특정 심볼의 오더북 스냅샷을 가져올 수 있어요.

KrakenFutures.REST_API.GetOrderBook('PI_XBTUSD'); 

Kraken Futures REST Private API 

REST Private 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 Futures API

Kraken Futures 서버 연결: WebSocket 및 REST API https://www.esegece.com/help/sgcWebSockets/#t=Components%2FAPIs%2FAPI%2FAPI_Kraken_Futures.htm