API Kraken | Prywatny API WebSockets

Połączenie

URL: wss://ws-auth.kraken.com (v1) lub wss://ws-auth.kraken.com/v2 (v2, zalecane)

Komponent obsługuje teraz WebSocket API v2 za pośrednictwem właściwości Version (domyślnie: 2).

 

Po otwarciu gniazda można subskrybować kanały danych prywatnych, wysyłając uwierzytelnione żądanie subskrypcji.

 

Uwierzytelnianie

Klient API musi zażądać tokenu uwierzytelniającego za pośrednictwem następującego punktu końcowego REST API „GetWebSocketsToken", aby połączyć się z prywatnymi punktami końcowymi WebSockets. Token powinien zostać użyty w ciągu 15 minut od jego utworzenia. Token nie wygasa po nawiązaniu połączenia z prywatną wiadomością API WebSockets (openOrders lub ownTrades).

Aby uzyskać token WebSockets, należy ustawić klucz API oraz sekret API w komponencie Kraken Options — klucz API jest dostarczany przez Kraken w ramach konta użytkownika.

  
Kraken.ApiKey := 'api key';
Kraken.ApiSecret := 'api secret';

Metody

OwnTrades

Pobierz listę własnych transakcji. Przy pierwszej subskrypcji otrzymywana jest lista ostatnich 50 transakcji.

  
SubscribeOwnTrades();

Później można anulować subskrypcję OwnTrades, wywołując metodę UnSubscribeOwnTrades

  
UnSubscribeOwnTrades();

Przykładowa odpowiedź serwera


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

Otwarte zlecenia

Kanał pokazujący wszystkie otwarte zlecenia należące do uwierzytelnionego klucza API użytkownika. Początkowa migawka zawiera listę wszystkich otwartych zleceń, a następnie wszelkie aktualizacje listy otwartych zleceń są wysyłane na bieżąco. W przypadku aktualizacji statusu, takich jak „zamknięte", ładunek zawiera pola orderid i status.

  
SubscribeOpenOrders();

Można później anulować subskrypcję OpenOrders, wywołując metodę UnSubscribeOpenOrders.

  
UnSubscribeOpenOrders();

Przykładowa odpowiedź serwera


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

Dodaj zlecenie

Wyślij nowe zlecenie do Kraken

  
oKrakenOrder := TsgcWSKrakenOrder.Create;
oKrakenOrder.Pair := 'XBT/USD';
oKrakenOrder._Type := kosBuy;
oKrakenOrder.OrderType := kotMarket;
oKrakenOrder.Volume := 1;
AddOrder(oKrakenOrder);

Lista parametrów zlecenia


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

Przykładowa odpowiedź serwera


{
  "descr": "buy 0.01770000 XBTUSD @ limit 4000",
  "event": "addOrderStatus",
  "status": "ok",
  "txid": "ONPNXH-KMKMU-F4MR5V"
}

Anuluj zlecenie

Anuluj zlecenie

  
CancelOrder('Order Id');

Przykładowa odpowiedź serwera


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