URL: wss://ws-auth.kraken.com (v1) 또는 wss://ws-auth.kraken.com/v2 (v2, 권장)
이제 구성 요소는 Version 속성(기본값: 2)을 통해 WebSocket API v2를 지원합니다.
소켓이 열리면 인증된 subscribe 요청 메시지를 보내 비공개 데이터 채널을 구독할 수 있습니다.
API 클라이언트는 WebSockets Private 엔드포인트에 연결하기 위해 다음 REST API 엔드포인트 "GetWebSocketsToken"을 통해 인증 "token"을 요청해야 합니다. 토큰은 생성 후 15분 이내에 사용해야 합니다. WebSockets API private 메시지(openOrders 또는 ownTrades)에 대한 연결이 유지되는 한 토큰은 만료되지 않습니다.
Websockets Token을 얻으려면 Kraken Options Component에 API Key와 API Secret을 설정해야 합니다. 계정에서 Kraken이 제공한 api 키입니다.
Kraken.ApiKey := 'api key';
Kraken.ApiSecret := 'api secret';
자신의 거래 목록을 가져옵니다. 첫 구독 시 최신 50건의 거래 목록을 가져옵니다
SubscribeOwnTrades();
나중에 UnSubscribeOwnTrades 메서드를 호출하여 OwnTrades에서 구독을 취소할 수 있습니다
UnSubscribeOwnTrades();
서버의 응답 예제
[
[
{
"TDLH43-DVQXD-2KHVYY": {
"cost": "1000000.00000",
"fee": "600.00000",
"margin": "0.00000",
"ordertxid": "TDLH43-DVQXD-2KHVYY",
"ordertype": "limit",
"pair": "XBT/EUR",
"postxid": "OGTT3Y-C6I3P-XRI6HX",
"price": "100000.00000",
"time": "1560520332.914664",
"type": "buy",
"vol": "1000000000.00000000"
}
}
],
"ownTrades"
]
인증된 사용자 API 키에 속하는 모든 미결 주문을 표시하는 피드입니다. 초기 스냅샷은 모든 미결 주문 목록을 제공하고 그 다음 미결 주문 목록에 대한 모든 업데이트가 전송됩니다. 'closed'와 같은 상태 변경 업데이트의 경우, 페이로드에 orderid 및 status 필드가 존재합니다
SubscribeOpenOrders();
나중에 UnSubscribeOpenOrders 메서드를 호출하여 OpenOrders에서 구독 해제할 수 있습니다
UnSubscribeOpenOrders();
서버의 응답 예제
[
[
{
"OGTT3Y-C6I3P-XRI6HX": {
"cost": "0.00000",
"descr": {
"close": "",
"leverage": "0:1",
"order": "sell 0.00001000 XBT/EUR @ limit 9.00000 with 0:1 leverage",
"ordertype": "limit",
"pair": "XBT/EUR",
"price": "9.00000",
"price2": "0.00000",
"type": "sell"
},
"expiretm": "0.000000",
"fee": "0.00000",
"limitprice": "9.00000",
"misc": "",
"oflags": "fcib",
"opentm": "0.000000",
"price": "9.00000",
"refid": "OKIVMP-5GVZN-Z2D2UA",
"starttm": "0.000000",
"status": "open",
"stopprice": "0.000000",
"userref": 0,
"vol": "0.00001000",
"vol_exec": "0.00000000"
}
}
],
"openOrders"
]
Send a new Order to Kraken
oKrakenOrder := TsgcWSKrakenOrder.Create;
oKrakenOrder.Pair := 'XBT/USD';
oKrakenOrder._Type := kosBuy;
oKrakenOrder.OrderType := kotMarket;
oKrakenOrder.Volume := 1;
AddOrder(oKrakenOrder);
Order 매개변수 목록
pair = asset pair
type = type of order (buy/sell)
ordertype = order type:
market
limit (price = limit price)
stop-loss (price = stop loss price)
take-profit (price = take profit price)
stop-loss-profit (price = stop loss price, price2 = take profit price)
stop-loss-profit-limit (price = stop loss price, price2 = take profit price)
stop-loss-limit (price = stop loss trigger price, price2 = triggered limit price)
take-profit-limit (price = take profit trigger price, price2 = triggered limit price)
trailing-stop (price = trailing stop offset)
trailing-stop-limit (price = trailing stop offset, price2 = triggered limit offset)
stop-loss-and-limit (price = stop loss price, price2 = limit price)
settle-position
price = price (optional. dependent upon ordertype)
price2 = secondary price (optional. dependent upon ordertype)
volume = order volume in lots
leverage = amount of leverage desired (optional. default = none)
oflags = comma delimited list of order flags (optional):
viqc = volume in quote currency (not available for leveraged orders)
fcib = prefer fee in base currency
fciq = prefer fee in quote currency
nompp = no market price protection
post = post only order (available when ordertype = limit)
starttm = scheduled start time (optional):
0 = now (default)
+<n> = schedule start time <n> seconds from now
<n> = unix timestamp of start time
expiretm = expiration time (optional):
0 = no expiration (default)
+<n> = expire <n> seconds from now
<n> = unix timestamp of expiration time
userref = user reference id. 32-bit signed number. (optional)
validate = validate inputs only. do not submit order (optional)
optional closing order to add to system when order gets filled:
close[ordertype] = order type
close[price] = price
close[price2] = secondary price
서버의 응답 예제
{
"descr": "buy 0.01770000 XBTUSD @ limit 4000",
"event": "addOrderStatus",
"status": "ok",
"txid": "ONPNXH-KMKMU-F4MR5V"
}
주문 취소
CancelOrder('Order Id');
서버의 응답 예제
{
"event": "cancelOrderStatus",
"status": "ok"
}