API XTB

XTB

 

APIs prises en charge

 

Propriétés

Le protocole WebSocket permet 2 types de requêtes : les commandes de streaming (recevoir des mises à jour en direct) et les données de trading récupérées (envoyer une requête au serveur pour récupérer des informations).

 

Vous pouvez configurer les propriétés suivantes dans la propriété XTB.

 

Connexion

Lorsque le client se connecte avec succès aux serveurs XTB, l'événement OnXTBConnect est déclenché. En cas d'erreur lors de la connexion, l'événement OnXTBError sera déclenché avec les détails de l'erreur.

Après le déclenchement de l'événement OnXTBConnect, vous pouvez commencer à envoyer et à recevoir des messages depuis les serveurs XTB.

 


oClient := TsgcWebSocketClient.Create(nil);
oXTB := TsgcWSAPI_XTB.Create(nil);
oXTB.Client := oClient;
oXTB.XTB.User := 'user_0001';
oXTB.XTB.Password := 'secret_0001';
oClient.Active := True;
procedure OnXTBConnect(Sender: TObject; const aStreamSessionId: string);
begin
  DoLog('#XTB Connected');
end;
procedure OnXTBError(Sender: TObject; aCode, aDescription, aRawMessage: string);
begin
  DoLog('#error: ' + aDescription);
end;

 

Commandes de connexion

 

Méthode Description
Connexion Pour effectuer toute action, l'application cliente doit effectuer le processus de connexion. Aucune fonctionnalité n'est disponible avant un processus de connexion correct. La méthode de connexion est appelée automatiquement après que le client se connecte au serveur websocket et que les valeurs Utilisateur/Mot de passe sont définies.
Déconnexion  

 

 

Commandes de streaming

Vous pouvez vous abonner aux canaux suivants :

 

Méthode Description
SubscribeBalance Permet d'obtenir les valeurs réelles des indicateurs de compte en temps réel, dès qu'elles sont disponibles dans le système.
SubscribeCandles S'abonne et se désabonne des graphiques en chandeliers de l'API. L'intervalle de chaque bougie est de 1 minute. Une nouvelle bougie arrive chaque minute.
SubscribeKeepAlive S'abonne et se désabonne des messages « keep alive ». Un nouveau message « keep alive » est envoyé par l'API toutes les 3 secondes.
SubscribeNews S'abonne et se désabonne des actualités.
SubscribeProfits S'abonne et se désabonne des profits.
SubscribeTickPrices

Établit un abonnement pour les cotations et vous permet d'obtenir les informations pertinentes en temps réel, dès qu'elles sont disponibles dans le système. La commande getTickPrices peut être invoquée plusieurs fois pour le même symbole, mais un seul abonnement pour un symbole donné sera créé. Veuillez noter que lorsque plusieurs enregistrements sont disponibles, l'ordre dans lequel ils sont reçus n'est pas garanti.

SubscribeTrades Établit un abonnement pour les données de statut des trades utilisateur et vous permet d'obtenir les informations pertinentes en temps réel, dès qu'elles sont disponibles dans le système. Veuillez noter que lorsque plusieurs enregistrements sont disponibles, l'ordre dans lequel ils sont reçus n'est pas garanti.
SubscribeTradeStatus Permet d'obtenir le statut des demandes de transaction envoyées en temps réel, dès qu'il est disponible dans le système. Veuillez noter que lorsque plusieurs enregistrements sont disponibles, l'ordre dans lequel ils sont reçus n'est pas garanti
SubscribePing Appeler régulièrement cette fonction est suffisant pour actualiser l'état interne de tous les composants du système. La connexion en streaming, lorsqu'aucune commande n'est envoyée par le client dans la session, génère uniquement du trafic réseau unidirectionnel. Il est recommandé que toute application n'exécutant pas d'autres commandes appelle cette commande au moins une fois toutes les 10 minutes.

 

 

Récupération des données de trading

Vous pouvez envoyer les requêtes suivantes :

 

Méthode Description
GetAllSymbols Retourne un tableau de tous les symboles disponibles pour l'utilisateur.
GetCalendar Retourne le calendrier avec les événements du marché.
GetChartLastRequest Veuillez noter que cette fonction peut généralement être remplacée par son équivalent en streaming getCandles, qui est la méthode préférée pour récupérer les données actuelles de chandeliers. Retourne les informations graphiques, de la date de début jusqu'à l'heure actuelle. Si la période choisie de CHART_LAST_INFO_RECORD est supérieure à 1 minute, le dernier chandelier retourné par l'API peut changer jusqu'à la fin de la période (le chandelier est automatiquement mis à jour chaque minute).
GetChartRangeRequest Veuillez noter que cette fonction peut généralement être remplacée par son équivalent en streaming getCandles, qui est la méthode préférée pour récupérer les données de chandeliers actuelles. Retourne des informations graphiques avec des données entre les dates de début et de fin données.
GetCommissionDef Retourne le calcul de la commission et du taux de change. La valeur est calculée comme valeur attendue et peut donc ne pas être parfaitement précise.
GetCurrentUserData

Retourne des informations sur la devise du compte et l'effet de levier du compte.

GetIbsHistory

Retourne les données IB pour la plage de temps donnée.
GetMarginLevel Notez que cette fonction peut généralement être remplacée par son équivalent en streaming getBalance, qui est la méthode privilégiée pour récupérer les indicateurs de compte. Retourne divers indicateurs de compte.
GetMarginTrade Retourne la marge attendue pour l'instrument et le volume donnés. La valeur est calculée comme valeur de marge attendue et peut donc ne pas être parfaitement précise.
GetNews Veuillez noter que cette fonction peut généralement être remplacée par son équivalent en streaming getNews, qui est la méthode préférée pour récupérer des données d'actualités. Retourne les actualités du serveur de trading qui ont été envoyées dans la période spécifiée.
GetProfitCalculation Calcule le profit estimé pour des données de transaction données. À utiliser uniquement pour les applications de type calculatrice. Le profit pour les transactions ouvertes doit être pris du serveur, en raison d'une plus grande précision du calcul côté serveur
GetServerTime Renvoie l'heure actuelle sur le serveur de trading
GetStepRules Retourne une liste de règles d'étapes pour les DMA
GetSymbol Retourne des informations sur le symbole disponible pour l'utilisateur
GetTickPrices Notez que cette fonction peut généralement être remplacée par son équivalent de streaming getTickPrices, qui est la méthode préférée pour récupérer les données de ticks. Retourne un tableau de cotations courantes pour les symboles donnés ; seules les cotations ayant changé depuis l'horodatage donné sont retournées. Le nouvel horodatage obtenu en sortie sera utilisé comme argument du prochain appel de cette commande.
GetTradeRecords Retourne un tableau des trades listés dans l'argument orders
GetTrades Veuillez noter que cette fonction peut généralement être remplacée par son équivalent en streaming getTrades, qui est la méthode préférée pour récupérer les données de transactions. Renvoie un tableau des transactions de l'utilisateur.
GetTradesHistory Veuillez noter que cette fonction peut généralement être remplacée par son équivalent en streaming getTrades, qui est la méthode préférable pour récupérer les données de transactions. Retourne un tableau des transactions de l'utilisateur qui ont été clôturées dans la période spécifiée.
GetTradingHours Renvoie les cours et les horaires de trading.
GetVersion Retourne la version actuelle de l'API.
Ping Appeler régulièrement cette fonction suffit pour actualiser l'état interne de tous les composants du système. Il est recommandé que toute application qui n'exécute pas d'autres commandes appelle cette commande au moins une fois toutes les 10 minutes. Notez que l'équivalent en flux de cette fonction est une combinaison de ping et getKeepAlive.
TradeTransaction Démarre une transaction commerciale. tradeTransaction envoie les informations de transaction principales au serveur.
TradeTransactionStatus Notez que cette fonction peut généralement être remplacée par son équivalent de streaming getTradeStatus, qui est la méthode préférée pour récupérer les données de statut de transaction. Retourne le statut actuel de la transaction. À tout moment du traitement d'une transaction, le client peut vérifier le statut de la transaction côté serveur. Pour ce faire, le client doit fournir l'ordre unique issu de l'invocation tradeTransaction.