API Kraken | WebSockets Private API

Verbindung

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.

 

Authentifizierung

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';

Methoden

OwnTrades

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"
]

Offene Orders

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"
]

Order hinzufügen

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

Cancel order

  
CancelOrder('Order Id');

Beispielantwort vom Server


{
  "event": "cancelOrderStatus",
  "status": "ok"
}