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