URL: wss://ws-auth.kraken.com (v1) oder wss://ws-auth.kraken.com/v2 (v2, empfohlen)
Die Komponente unterstützt jetzt WebSocket API v2 über die Eigenschaft Version (Standard: 2).
Sobald der Socket geöffnet ist, können Sie private Datenkanäle abonnieren, indem Sie eine authentifizierte Subscribe-Anfragenachricht senden.
Der API-Client muss über den folgenden REST-API-Endpunkt "GetWebSocketsToken" ein Authentifizierungs-"Token" anfordern, um sich mit privaten WebSocket-Endpunkten zu verbinden. Das Token sollte innerhalb von 15 Minuten nach der Erstellung verwendet werden. Das Token läuft nicht ab, sobald eine Verbindung zu einer privaten WebSocket-API-Nachricht (openOrders oder ownTrades) aufrechterhalten wird.
Um ein WebSockets-Token zu erhalten, müssen ein API-Schlüssel und ein API-Secret in der Kraken-Options-Komponente gesetzt werden; den API-Schlüssel stellt Kraken in Ihrem Konto bereit
Kraken.ApiKey := 'api key';
Kraken.ApiSecret := 'api secret';
Rufen Sie eine Liste eigener Trades ab. Beim ersten Abonnement erhalten Sie eine Liste der letzten 50 Trades
SubscribeOwnTrades();
Später können Sie das Abonnement von OwnTrades kündigen, indem Sie die Methode UnSubscribeOwnTrades aufrufen
UnSubscribeOwnTrades();
Beispielantwort vom Server
[
[
{
"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"
]
Feed zur Anzeige aller offenen Aufträge, die zum API-Schlüssel des authentifizierten Benutzers gehören. Eine erste Momentaufnahme liefert die Liste aller offenen Aufträge, danach werden alle Aktualisierungen der Liste offener Aufträge gesendet. Bei Statusänderungen, wie 'closed', sind die Felder orderid und status in der Nutzlast vorhanden
SubscribeOpenOrders();
Später können Sie OpenOrders abbestellen, indem Sie die Methode UnSubscribeOpenOrders aufrufen
UnSubscribeOpenOrders();
Beispielantwort vom Server
[
[
{
"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"
]
Eine neue Order an Kraken senden
oKrakenOrder := TsgcWSKrakenOrder.Create;
oKrakenOrder.Pair := 'XBT/USD';
oKrakenOrder._Type := kosBuy;
oKrakenOrder.OrderType := kotMarket;
oKrakenOrder.Volume := 1;
AddOrder(oKrakenOrder);
Liste der Order-Parameter
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
Beispielantwort vom Server
{
"descr": "buy 0.01770000 XBTUSD @ limit 4000",
"event": "addOrderStatus",
"status": "ok",
"txid": "ONPNXH-KMKMU-F4MR5V"
}
Cancel order
CancelOrder('Order Id');
Beispielantwort vom Server
{
"event": "cancelOrderStatus",
"status": "ok"
}