API Kraken | API WebSockets publique

Connexion

URL : wss://ws.kraken.com (v1) ou wss://ws.kraken.com/v2 (v2, recommandé)

Le composant prend désormais en charge l'API WebSocket v2 via la propriété Version (par défaut : 2). Définissez Kraken.Version := 1 pour utiliser le point de terminaison v1 hérité.

 

Une fois le socket ouvert, vous pouvez vous abonner à un canal public en envoyant un message de demande d'abonnement.

 

Considérations générales

 

Paires prises en charge

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éthodes

Ping

Le client peut pinguer le serveur pour déterminer si la connexion est active, le serveur répond avec un pong.

Il s'agit d'un ping au niveau de l'application, contrairement au ping par défaut dans la norme WebSockets qui est initié par le serveur

Ticker

Les informations du ticker incluent les meilleurs prix d'achat et de vente, le volume sur 24h, le dernier prix de transaction, le prix moyen pondéré par le volume, etc. pour une paire de devises donnée. Un message ticker est publié chaque fois qu'une transaction ou un groupe de transactions se produit.

Abonnez-vous à un ticker en appelant la méthode SubscribeTicker :


SubscribeTicker(['XBT/USD']);

Si l'abonnement réussit, l'événement OnKrakenSubscribed sera appelé :


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

Se désabonner en appelant la méthode UnSubscribeTicker :


UnSubscribeTicker(['XBT/USD']);

Si le désabonnement réussit, l'événement OnKrakenUnSubscribed sera appelé :


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

En cas d'erreur lors d'une tentative d'abonnement / désabonnement, l'événement OnKrakenSubscriptionError sera appelé.


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

Les mises à jour de ticker seront notifiées dans l'événement 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

Lors d'un abonnement à OHLC, un instantané de la dernière bougie valide (indépendamment de l'heure de fin) est envoyé, suivi des mises à jour de la bougie en cours. Par exemple, si un abonnement est fait sur une bougie d'1 minute et qu'il n'y a pas eu de transactions pendant 5 minutes, un instantané de la dernière bougie d'1 minute d'il y a 5 minutes sera publié. L'heure de fin peut être utilisée pour déterminer s'il s'agit d'une ancienne bougie.

Abonnez-vous à un OHLC en appelant la méthode SubscribeOHLC ; vous devez passer la paire et l'intervalle.


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

Si l'abonnement réussit, l'événement OnKrakenSubscribed sera appelé :


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

Se désabonner en appelant la méthode UnSubscribeOHLC :

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

Si le désabonnement réussit, l'événement OnKrakenUnSubscribed sera appelé :

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

En cas d'erreur lors d'une tentative d'abonnement / désabonnement, l'événement OnKrakenSubscriptionError sera appelé.

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

Les mises à jour OHLC seront notifiées dans l'événement OnKrakenData.


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

Transaction

Flux de transactions pour une paire de devises.

Abonnez-vous au flux Trade en appelant la méthode SubscribeTrade.

 
SubscribeTrade(['XBT/USD']);

Si l'abonnement réussit, l'événement OnKrakenSubscribed sera appelé :

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

Désabonnement en appelant la méthode UnSubscribeTrade :

 
UnSubscribeTrade(['XBT/USD']);

Si le désabonnement réussit, l'événement OnKrakenUnSubscribed sera appelé :

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

En cas d'erreur lors d'une tentative d'abonnement / désabonnement, l'événement OnKrakenSubscriptionError sera appelé.

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

Les mises à jour des transactions seront notifiées dans l'événement OnKrakenData.


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

Livre

Niveaux du carnet d'ordres. Lors de l'abonnement, un instantané sera publié à la profondeur spécifiée ; ensuite, des mises à jour de niveaux seront publiées.

Abonnez-vous à un carnet d'ordres en appelant la méthode SubscribeBook, vous devez passer la paire et la profondeur.

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

Si l'abonnement réussit, l'événement OnKrakenSubscribed sera appelé :

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

Se désabonner en appelant la méthode UnSubscribeBook :

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

Si le désabonnement réussit, l'événement OnKrakenUnSubscribed sera appelé :

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

En cas d'erreur lors d'une tentative d'abonnement / désabonnement, l'événement OnKrakenSubscriptionError sera appelé.

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

Les mises à jour du carnet d'ordres seront notifiées dans l'événement 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"
]

Spread

Flux de spread pour afficher le meilleur prix d'achat et de vente pour la paire d'actifs souscrite. Le volume acheteur et le volume vendeur font également partie du message.

S'abonner au flux de spread en appelant la méthode SubscribeSpread.

   
SubscribeSpread(['XBT/USD']);

Si l'abonnement réussit, l'événement OnKrakenSubscribed sera appelé :

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

Se désabonner en appelant la méthode UnSubscribeSpread :

    
UnSubscribeSpread(['XBT/USD']);

Si le désabonnement réussit, l'événement OnKrakenUnSubscribed sera appelé :

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

En cas d'erreur lors d'une tentative d'abonnement / désabonnement, l'événement OnKrakenSubscriptionError sera appelé.

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

Les mises à jour de spread seront notifiées dans l'événement OnKrakenData.

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

Autres méthodes

Vous pouvez vous abonner / vous désabonner de tous les canaux avec une seule méthode :

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

La valeur de l'intervalle OHLC est 1 si tous les canaux sont abonnés.

 

 

 

Événements

OnConnect : lorsque le client WebSocket est connecté au serveur.

OnKrakenConnect : appelé après une connexion WebSocket réussie et lorsque le serveur envoie l'état du système.

OnKrakenSystemStatus : appelé lorsque le statut du système change.

OnKrakenSubscribed : appelé après un abonnement réussi à un canal.

OnKrakenUnSubscribed : appelé après un désabonnement réussi d'un canal.

OnKrakenSubscriptionError: appelé s'il y a une erreur lors de la tentative d'abonnement / désabonnement.

OnKrakenData: appelé chaque fois qu'une souscription à un canal reçoit une mise à jour.