API Kraken | WebSockets Public API

Conexión

URL: wss://ws.kraken.com (v1) o wss://ws.kraken.com/v2 (v2, recomendado)

El componente ahora admite la API WebSocket v2 mediante la propiedad Version (predeterminado: 2). Establezca Kraken.Version := 1 para usar el extremo v1 heredado.

 

Una vez que el socket esté abierto, puede suscribirse a un canal público enviando un mensaje de solicitud de suscripción.

 

Consideraciones generales

 

Pares admitidos

ADA/CAD, ADA/ETH, ADA/EUR, ADA/USD, ADA/XBT, ATOM/CAD, ATOM/ETH, ATOM/EUR, ATOM/USD, ATOM/XBT, BCH/EUR, BCH/USD, BCH/XBT, DASH/EUR, DASH/USD, DASH/XBT, EOS/ETH, EOS/EUR, EOS/USD, EOS/XBT, GNO/ETH, GNO/EUR, GNO/USD, GNO/XBT, QTUM/CAD, QTUM/ETH, QTUM/EUR, QTUM/USD, QTUM/XBT, USDT/USD, ETC/ETH, ETC/XBT, ETC/EUR, ETC/USD, ETH/XBT, ETH/CAD, ETH/EUR, ETH/GBP, ETH/JPY, ETH/USD, LTC/XBT, LTC/EUR, LTC/USD, MLN/ETH, MLN/XBT, REP/ETH, REP/XBT, REP/EUR, REP/USD, STR/EUR, STR/USD, XBT/CAD, XBT/EUR, XBT/GBP, XBT/JPY, XBT/USD, BTC/CAD, BTC/EUR, BTC/GBP, BTC/JPY, BTC/USD, XDG/XBT, XLM/XBT, DOGE/XBT, STR/XBT, XLM/EUR, XLM/USD, XMR/XBT, XMR/EUR, XMR/USD, XRP/XBT, XRP/CAD, XRP/EUR, XRP/JPY, XRP/USD, ZEC/XBT, ZEC/EUR, ZEC/JPY, ZEC/USD, XTZ/CAD, XTZ/ETH, XTZ/EUR, XTZ/USD, XTZ/XBT

 

Métodos

Ping

El cliente puede hacer ping al servidor para determinar si la conexión está activa; el servidor responde con pong.

Este es un ping de nivel de aplicación, a diferencia del ping predeterminado del estándar WebSockets, que es iniciado por el servidor.

Ticker

La información del ticker incluye los mejores precios de venta y compra, volumen de 24 horas, último precio de operación, precio promedio ponderado por volumen, etc., para un par de divisas determinado. Se publica un mensaje de ticker cada vez que ocurre una operación o un grupo de operaciones.

Suscríbase a un ticker llamando al método SubscribeTicker:


SubscribeTicker(['XBT/USD']);

Si la suscripción es exitosa, se invocará el evento OnKrakenSubscribed:


procedure OnKrakenSubscribed(Sender: TObject;ChannelId: Integer; Pair, Subscription, ChannelName: string; 
  ReqID:Integer);
begin
  DoLog('#subscribed: ' + Subscription + ' ' + Pair + ' ' + ChannelName);
end;

Cancele la suscripción llamando al método UnSubscribeTicker:


UnSubscribeTicker(['XBT/USD']);

Si la cancelación de la suscripción es correcta, se invocará el evento OnKrakenUnSubscribed:


procedure OnKrakenUnSubscribed(Sender: TObject; ChannelId: Integer; Pair, Subscription: string; 
  ReqID: Integer);
begin
  DoLog('#unsubscribed: ' + Subscription + ' ' + Pair);
end;

Si se produce un error al intentar suscribirse o cancelar la suscripción, se llamará al evento OnKrakenSubscriptionError.


procedure OnKrakenSubscriptionError(Sender: TObject; ErrorMessage, Pair, Subscription: string; 
  ReqID: Integer);
begin
  DoLog('#subscription error: ' + ErrorMessage);
end;

Las actualizaciones del ticker se notificarán en el evento OnKrakenData.

 
[
  0,
  {
    "a": [
      "5525.40000",
      1,
      "1.000"
    ],
    "b": [
      "5525.10000",
      1,
      "1.000"
    ],
    "c": [
      "5525.10000",
      "0.00398963"
    ],
    "v": [
      "2634.11501494",
      "3591.17907851"
    ],
    "p": [
      "5631.44067",
      "5653.78939"
    ],
    "t": [
      11493,
      16267
    ],
    "l": [
      "5505.00000",
      "5505.00000"
    ],
    "h": [
      "5783.00000",
      "5783.00000"
    ],
    "o": [
      "5760.70000",
      "5763.40000"
    ]
  },
  "ticker",
  "XBT/USD"
]

OHLC

Al suscribirse a OHLC, se enviará un snapshot de la última vela válida (independientemente del endtime), seguido de actualizaciones de la vela en curso. Por ejemplo, si se realiza una suscripción a una vela de 1 minuto y no ha habido operaciones durante 5 minutos, se publicará un snapshot de la última vela de 1 minuto de hace 5 minutos. El endtime puede usarse para determinar que es una vela antigua.

Suscríbase a OHLC llamando al método SubscribeOHLC; debe pasar el par y el intervalo.


SubscribeOHLC(['XBT/USD'], kin1min);

Si la suscripción es exitosa, se llamará al evento OnKrakenSubscribed:


procedure OnKrakenSubscribed(Sender: TObject;ChannelId: Integer; Pair, Subscription, ChannelName: string; 
  ReqID:Integer);
begin
  DoLog('#subscribed: ' + Subscription + ' ' + Pair + ' ' + ChannelName);
end;

Cancele la suscripción llamando al método UnSubscribeOHLC:

 
UnSubscribeOHLC(['XBT/USD'], kin1min);

Si la cancelación de la suscripción es correcta, se invocará el evento OnKrakenUnSubscribed:

 
procedure OnKrakenUnSubscribed(Sender: TObject; ChannelId: Integer; Pair, Subscription: string; 
  ReqID: Integer);
begin
  DoLog('#unsubscribed: ' + Subscription + ' ' + Pair);
end;

Si se produce un error al intentar suscribirse o cancelar la suscripción, se llamará al evento OnKrakenSubscriptionError.

 
procedure OnKrakenSubscriptionError(Sender: TObject; ErrorMessage, Pair, Subscription: string; 
  ReqID: Integer);
begin
  DoLog('#subscription error: ' + ErrorMessage);
end;

Las actualizaciones OHLC se notificarán en el evento OnKrakenData.


[
  42,
  [
    "1542057314.748456",
    "1542057360.435743",
    "3586.70000",
    "3586.70000",
    "3586.60000",
    "3586.60000",
    "3586.68894",
    "0.03373000",
    2
  ],
  "ohlc-5",
  "XBT/USD"
]

Trade

Flujo de operaciones para un par de divisas.

Suscríbase al canal de Trade llamando al método SubscribeTrade.

 
SubscribeTrade(['XBT/USD']);

Si la suscripción es exitosa, se llamará al evento OnKrakenSubscribed:

 
procedure OnKrakenSubscribed(Sender: TObject;ChannelId: Integer; Pair, Subscription, ChannelName: 
  string; ReqID:Integer);
begin
  DoLog('#subscribed: ' + Subscription + ' ' + Pair + ' ' + ChannelName);
end;

Cancelar la suscripción llamando al método UnSubscribeTrade:

 
UnSubscribeTrade(['XBT/USD']);

Si la cancelación de la suscripción es correcta, se invocará el evento OnKrakenUnSubscribed:

  
procedure OnrakenUnSubscribed(Sender: TObject; ChannelId: Integer; Pair, Subscription: string; 
  ReqID: Integer);
begin
  DoLog('#unsubscribed: ' + Subscription + ' ' + Pair);
end;

Si se produce un error al intentar suscribirse o cancelar la suscripción, se llamará al evento OnKrakenSubscriptionError.

   
procedure OnKrakenSubscriptionError(Sender: TObject; ErrorMessage, Pair, Subscription: string; 
  ReqID: Integer);
begin
  DoLog('#subscription error: ' + ErrorMessage);
end;

Las actualizaciones de operaciones se notificarán en el evento OnKrakenData.


[
  0,
  [
    [
      "5541.20000",
      "0.15850568",
      "1534614057.321597",
      "s",
      "l",
      ""
    ],
    [
      "6060.00000",
      "0.02455000",
      "1534614057.324998",
      "b",
      "l",
      ""
    ]
  ],
  "trade",
  "XBT/USD"
]

Libro

Niveles del libro de órdenes. Al suscribirse, se publicará una instantánea con la profundidad especificada; tras la instantánea, se publicarán actualizaciones de niveles.

Suscríbase a un libro llamando al método SubscribeBook; debe pasar el par y la profundidad.

  
SubscribeBook(['XBT/USD'], kde10);

Si la suscripción es exitosa, se llamará al evento OnKrakenSubscribed:

   
procedure OnKrakenSubscribed(Sender: TObject;ChannelId: Integer; Pair, Subscription, ChannelName: string; 
  ReqID:Integer);
begin
  DoLog('#subscribed: ' + Subscription + ' ' + Pair + ' ' + ChannelName);
end;

Cancelar suscripción llamando al método UnSubscribeBook:

    
UnSubscribeBook(['XBT/USD'], kde10);

Si la cancelación de la suscripción es correcta, se invocará el evento OnKrakenUnSubscribed:

  
procedure OnKrakenUnSubscribed(Sender: TObject; ChannelId: Integer; Pair, Subscription: string; 
  ReqID: Integer);
begin
  DoLog('#unsubscribed: ' + Subscription + ' ' + Pair);
end;

Si se produce un error al intentar suscribirse o cancelar la suscripción, se llamará al evento OnKrakenSubscriptionError.

   
procedure OnKrakenSubscriptionError(Sender: TObject; ErrorMessage, Pair, Subscription: string; ReqID: Integer);
begin
  DoLog('#subscription error: ' + ErrorMessage);
end;

Las actualizaciones del libro de órdenes se notificarán en el evento OnKrakenData.

 
[
  0,
  {
    "as": [
      [
          "5541.30000",
          "2.50700000",
          "1534614248.123678"
      ],
      [
          "5541.80000",
          "0.33000000",
          "1534614098.345543"
      ],
      [
          "5542.70000",
          "0.64700000",
          "1534614244.654432"
      ]
    ],
    "bs": [
      [
          "5541.20000",
          "1.52900000",
          "1534614248.765567"
      ],
      [
          "5539.90000",
          "0.30000000",
          "1534614241.769870"
      ],
      [
          "5539.50000",
          "5.00000000",
          "1534613831.243486"
      ]
    ]
  },
  "book-100",
  "XBT/USD"
]

Diferencial

Feed de spread para mostrar el mejor precio de compra y venta del par de activos suscrito. El volumen de compra y el volumen de venta también forman parte del mensaje.

Suscríbase al feed de spread llamando al método SubscribeSpread.

   
SubscribeSpread(['XBT/USD']);

Si la suscripción es exitosa, se llamará al evento OnKrakenSubscribed:

   
procedure OnKrakenSubscribed(Sender: TObject;ChannelId: Integer; Pair, Subscription, ChannelName: string; 
  ReqID:Integer);
begin
  DoLog('#subscribed: ' + Subscription + ' ' + Pair + ' ' + ChannelName);
end;

Cancelar la suscripción llamando al método UnSubscribeSpread:

    
UnSubscribeSpread(['XBT/USD']);

Si la cancelación de la suscripción es correcta, se invocará el evento OnKrakenUnSubscribed:

   
procedure OnrakenUnSubscribed(Sender: TObject; ChannelId: Integer; Pair, Subscription: string; 
  ReqID: Integer);
begin
  DoLog('#unsubscribed: ' + Subscription + ' ' + Pair);
end;

Si se produce un error al intentar suscribirse o cancelar la suscripción, se llamará al evento OnKrakenSubscriptionError.

  
procedure OnKrakenSubscriptionError(Sender: TObject; ErrorMessage, Pair, Subscription: string; 
  ReqID: Integer);
begin
  DoLog('#subscription error: ' + ErrorMessage);
end;

Las actualizaciones de spread se notificarán en el evento OnKrakenData.

 
[
  0,
  [
    "5698.40000",
    "5700.00000",
    "1542057299.545897",
    "1.01234567",
    "0.98765432"
  ],
  "spread",
  "XBT/USD"
]

Otros Métodos

Puede suscribirse o cancelar la suscripción a todos los canales con un único método:

  
SubscribeAll(['XBT/USD']);
 
UnSubscribeAll(['XBT/USD']);

El valor del intervalo OHLC es 1 si todos los canales están suscritos.

 

 

 

Eventos

OnConnect: cuando el cliente WebSocket está conectado al servidor.

OnKrakenConnect: se llama tras una conexión WebSocket exitosa y cuando el servidor envía el estado del sistema.

OnKrakenSystemStatus: se llama cuando cambia el estado del sistema.

OnKrakenSubscribed: se llama tras una suscripción exitosa a un canal.

OnKrakenUnSubscribed: se llama tras una cancelación de suscripción exitosa a un canal.

OnKrakenSubscriptionError: se llama cuando hay un error al intentar suscribirse o cancelar la suscripción.

OnKrakenData: se llama cada vez que una suscripción a un canal tiene una actualización.