Arne Gockeln
Experte für Web & Softwareentwicklung, Linux und macOS

libxtbclient

XTB Trading API Client Library

Die xtbclient lib ist eine C++14 Klassenbibliothek, mit der die Kommunikation zwischen deinem Trading Programm und dem XTB Trading Server ermöglicht wird. Die Verbindung findet über TCP Sockets und TCP Streaming Sockets statt. Sie ist getestet unter Linux und macOS.

Features

Die XTB Trading API ist eine JSON API. Die Daten werden also im JSON Format ausgetauscht. Zum Einen können einmalige Abfragen gesendet werden, um einmalig zum Beispiel den aktuellen Kontostand abzufragen. Zum Anderen können Abonnements eingegangen werden, um zum Beispiel bei jedem neuen Preistick die Daten zu erhalten.

Beispiel

Nachfolgend ist ein Beispiel wie ein einfaches Programm aussieht, um Tick Preis Daten für EURUSD anzuzeigen.

//
// This file demonstrates how to subscribe to tick price stream
//

#include <iostream>
#include <xtbclient/Client.h>

// here are my account credentials defined
// the file is not part of the repository
#include "../Credentials.h"

using namespace xtbclient;

/*!
 * The stream listener
 */
class SimpleListener: public StreamListener {
public:
  void onTickPrices(StreamTickRecord tickRecord) override {
    fprintf(stdout, "TickRecord: ask=%f, bid=%f, askVolume=%d, bidVolume=%d, high=%f, low=%f\n",
    tickRecord.m_ask, tickRecord.m_bid,
    tickRecord.m_askVolume, tickRecord.m_bidVolume,
    tickRecord.m_high, tickRecord.m_low);
  }
};

int main() {
  // set client to examples
  Client client(ClientType::DEMO);
  // login
  if( client.login( XTBACCOUNTID, XTBPASSWORD ) ){
    // set stream client
    Client streamClient(ClientType::DEMO_STREAM);
    // set stream session id
    streamClient.setStreamSessionId( client.getStreamSessionId() );
    // subscribe to tick prices
    streamClient.subscribeTickPrices( "EURUSD" );
    // set stream listener and start listening
    SimpleListener listener;
    streamClient.setStreamListener( &listener );
  }
}

Dokumentation

Download

Die Software und weitere Beispiele, ist bei github.com/arnegockeln/xtbclient veröffentlicht.

comments powered by Disqus