Entwickler-Example

Entwickler-Example & SDK

  • 🚀 Echtzeit-Datenintegration für C# / .NET
  • 📊 Tick-, Intraday- und End-of-Day Daten
  • ⚡ Push-basierte Live-Datenversorgung

Was ist das TAI-PAN .NET Example?

Dieses Beispielprojekt zeigt, wie die TAI-PAN Schnittstelle in einer .NET Anwendung genutzt wird.

Es dient als Startpunkt für Entwickler, die Marktdaten, Echtzeit-Feeds und historische Daten integrieren möchten.

Enthaltene Funktionen

  • 🔐 Anmeldung über DevID & User Credentials
  • 📈 Zugriff auf Kursdaten (Tick / Intraday / Historie)
  • ⚡ PushFeed für Live-Daten
  • 🖥️ Windows Forms Oberfläche
  • 🧩 Strukturierte .NET API Integration
  • 🌍 Stammdaten Zugriff
  • 🔎 Suchfunktion
⬇ Download Example

TPRAccess Schnittstelle – Entwicklerdokumentation

Hinweis

Diese Schnittstelle kann mit verschiedenen Programmiersprachen verwendet werden.
Allerdings sind möglicherweise nicht alle Funktionen in jeder Sprache vollständig oder identisch nutzbar.

Die Entwicklung und Tests erfolgen primär in C#. Sämtliche Funktionen wurden in dieser Umgebung validiert.

Für Implementierungen in anderen Programmiersprachen (z. B. Python) kann daher kein Support angeboten werden.

Quick Start

Download

Laden Sie zunächst die benötigte DLL herunter:

TPRAccess.dll herunterladen

Entpacken Sie anschließend die Datei TPRAccess.zip.

Einbindung der DLL-Schnittstelle

Öffnen Sie den Solution Explorer
→ Rechtsklick auf „Verweise“
→ „Verweis hinzufügen…“
→ „Durchsuchen…“
→ TPRAccess.dll auswählen
→ „Hinzufügen“ klicken
→ Sicherstellen, dass das Häkchen gesetzt ist
→ „OK“ klicken

Projekt-Konfiguration (.NET Core)

Hinweis: Für .NET Core Anwendungen muss die Codepage 1252 hinzugefügt werden.

csproj-Datei:

<ItemGroup>
        <PackageReference Include="System.Text.Encoding.CodePages" Version="4.3.0" />
        </ItemGroup>
        

Initialisierung im Quellcode:

using System.Text;
                        
                        Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
                        

Verwendung

Nach erfolgreicher Einbindung können Sie die Schnittstelle wie folgt verwenden:

using TPRAccess;
                        

Verbindung & Login

TPRClientLanguages

German – deutsche Rückgaben
English – englische Rückgaben
connection.ClientLanguage = TPRClientLanguages.German;
Die Sprache sollte direkt nach dem Erzeugen der Verbindung gesetzt werden, bevor weitere API-Aufrufe erfolgen.

TPRServerConnection

var connection = new TPRServerConnection(string"DEVELOPER_ID");
                            connection.ClientLanguage = TPRClientLanguages.German;
                            
TPRServerConnection(string developerId)
developerId – Developer-ID für die Freischaltung der Schnittstelle
Zentrales Verbindungsobjekt für Login, Suche, Feed, Charts, Watchlists und weitere API-Aufrufe.
Ohne gültige Developer-ID kann keine produktive Verbindung aufgebaut werden.
Hinweis:

Die Developer-ID ist Voraussetzung für die Nutzung der Schnittstelle und muss vorab über unseren Vertrieb schriftlich angefordert werden.
Kontakt: vertrieb@lp-software.de

Login

bool ok = connection.Login(string "CustomerID", string">"Password");
                                                
bool Login(string customerId, string password)
customerId – Kundenkennung / Login-ID
password – Passwort des Benutzers
true – Login erfolgreich
false – Login fehlgeschlagen
falsche Zugangsdaten
keine Verbindung zum Server
Developer-ID nicht gültig

Client-Information

var info = new TPRConnectionClientInfo();
                                                connection.GetConnectionClientInfo(ref info);
                                                string text = info.InfoText;
bool GetConnectionClientInfo(ref TPRConnectionClientInfo info)
info – Referenz auf ein Objekt
true – Daten erfolgreich geladen
false – Daten konnten nicht geladen werden
InfoText – Textinformation zur Client- bzw. DLL-Version

Benutzerdaten

GetUserInfo

var userInfo = connection.GetUserInfo();
Signatur
TPRUserInfo GetUserInfo()
Rückgabe
TPRUserInfo – Benutzerdaten und Stammdatenlisten des angemeldeten Benutzers

TPRUserInfo

Wichtige Daten
EMail – E-Mail-Adresse des Benutzers
Mobile – Mobilnummer
Username – Anzeigename / Benutzername
UserId – interne Benutzer- oder Kunden-ID
UseEMail – Kennzeichen für E-Mail-Benachrichtigungen
UseSMS – Kennzeichen für SMS-Benachrichtigungen
Wichtige Sammlungen
WatchLists – vorhandene Watchlists
Exchanges – Börsenverzeichnis
SecurityTypes – Wertpapierarten
Countries – Länder
NewsSubscriptions – vorhandene News-Abonnements

Katalogstruktur

var entries = new List();
                                                var folders = new Dictionary();
                                                var items = new Dictionary();
                                                
                                                connection.GetCatalogStructure(ref entries, ref folders, ref items);
                                                
GetCatalogStructure Signatur
bool GetCatalogStructure(
                                                    ref List entries,
                                                    ref Dictionary folders,
                                                    ref Dictionary items)
Parameter
entries – Liste der Katalogeinträge in Strukturform
folders – Dictionary mit allen Ordnerobjekten, Schlüssel ist jeweils die Ordner-ID
items – Dictionary mit allen Katalogobjekten, Schlüssel ist jeweils die Item-ID
Rückgabe
true – Katalogstruktur erfolgreich geladen
false – Laden fehlgeschlagen

TPRSearchTypes

Default – Standardsuche
EDV – Suche über EDV-Kennung
ISIN – Suche über ISIN
LimitSymbolen – spezielle Suche für Limitsymbole
MMQuoteId – Suche über MM-Quote-ID
Name – Suche über den Namen
QuickSuggestion – schnelle Vorschlagsliste für Suchfelder
SucheSymbolKuerzel – Suche über Symbolkürzel
Symbol – Suche über Symbol
SymbolNo – Suche über interne Symbolnummer
Symbol_Equal – exakte Symbolsuche
Symbol_ISIN_Name – kombinierte Suche über Symbol, ISIN oder Name
TaiPanEODDBID – Suche über interne EOD-Datenbank-ID

Search

var result = connection.Search(
                                                    TPRSearchTypes.Name,
                                                    string "Daimler",
                                                    TPRSecurityType.All.Id,
                                                    0);
                                                
Signatur
TPRSymbolList Search(
                                                    TPRSearchTypes searchType,
                                                    string searchText,
                                                    int securityTypeId,
                                                    int exchangeId)
Parameter
searchType – Suchmodus aus TPRSearchTypes
searchText – Suchbegriff, z. B. Name, ISIN oder Symbol
securityTypeId – Filter auf eine Wertpapierart; TPRSecurityType.All.Id bedeutet keine Einschränkung nach Typ
exchangeId – Filter auf eine Börse; 0 bedeutet keine Einschränkung
Rückgabe
TPRSymbolList – Trefferliste mit TPRSymbol-Objekten

TPRSecurityType

TPRSecurityType.All.Id

All – alle Wertpapierarten

Die vollständigen verfügbaren Security-Typen werden über userInfo.SecurityTypes bereitgestellt. Dort kann auf Id und Bezeichnung zugegriffen werden.

Watchlists

AddWatchList

Signatur
TPRWatchList AddWatchList(string name)
Parameter
name – frei wählbarer Name der Watchlist
Rückgabe
TPRWatchList – neu erzeugte Watchlist
Erstellen
var watchlist = userInfo.WatchLists.AddWatchList(string "Meine Watchlist");
Hinzufügen
watchlist.Add(169286);
Signatur
void Add(int symbolNo)
Parameter
symbolNo – interne Symbolnummer des Instruments
Mehrere
watchlist.Add(new List<int> {169286, 79514});
Signatur
void Add(List<int> symbolNumbers)
Parameter
symbolNumbers – Liste interner Symbolnummern
Aus Suche
watchlist.Add(result);
Signatur
void Add(TPRSymbolList symbols)
Parameter
symbols – Trefferliste, deren enthaltene Instrumente zur Watchlist hinzugefügt werden
Laden
var entries = connection.GetWatchListContent(watchlist.Id);
Signatur
TPRSymbolList GetWatchListContent(int watchListId)
Parameter
watchListId – ID der Watchlist
Rückgabe
TPRSymbolList – Inhalt der Watchlist
Löschen
userInfo.WatchLists.DeleteWatchList(watchlist.Id);
Signatur
bool DeleteWatchList(int watchListId)
Parameter
watchListId – ID der zu löschenden Watchlist
Rückgabe
true – Watchlist gelöscht
false – Löschen fehlgeschlagen

Realtime Feed

GetPushFeed

Signatur
TPRPushFeed GetPushFeed()
Rückgabe
TPRPushFeed – Feed-Objekt für Realtime-Nachrichten
Initialisierung
var feed = connection.GetPushFeed();
                                                feed.ConnectFeed();
Subscribe
feed.SubscribeSymbol(169286);
Signatur
bool SubscribeSymbol(int symbolNo)
Parameter
symbolNo – interne Symbolnummer des zu abonnierenden Instruments
Rückgabe
true – Abo gesetzt
false – Abo fehlgeschlagen
Mehrere
feed.SubscribeSymbol(new List<int> {169286, 79514});
Signatur
bool SubscribeSymbol(List<int> symbolNumbers)
Parameter
symbolNumbers – Liste interner Symbolnummern
Rückgabe
true – Abos gesetzt
false – mindestens ein Abo fehlgeschlagen oder der Aufruf war nicht erfolgreich
Unsubscribe
feed.UnsubscribeSymbol(169286);
Signatur
bool UnsubscribeSymbol(int symbolNo)
Parameter
symbolNo – interne Symbolnummer des abzumeldenden Instruments
Rückgabe
true – Abo entfernt
false – Entfernen fehlgeschlagen
Lesen
var msg = feed.GetNextPushFeedMessage();
Signatur
TPRPushFeedMessage GetNextPushFeedMessage()
Rückgabe
nächste verfügbare Feed-Nachricht

TPRPushFeedMessageTypes

Quote – neue Kursdaten
MarketDepth – neue Markttiefe
News – neue Nachricht
SymbolUpdate – Aktualisierung der Stammdaten eines Symbols
LimitUpdate – Änderung an einem Limit / Alert
LimitTrigger – Limit / Alert wurde ausgelöst
Reconnect – Reconnect-Status
Korrection – Kurskorrektur
Ping – Heartbeat des Servers
Info – allgemeine Information
ConnectionStatus – Verbindungsstatus
Beenden
feed.DisconnectFeed();

Candle Charts

GetCandleChart

Verfügbare Overloads
TPRCandleList GetCandleChart(int symbolNo, DateTime from)
                                        TPRCandleList GetCandleChart(int symbolNo, int compression, int count)
                                        TPRCandleList GetCandleChart(int symbolNo, int compression, DateTime from)
Parameter
symbolNo – interne Symbolnummer des Instruments
compression – Komprimierung der Kerzen, z. B. Minutenintervall
count – Anzahl der gewünschten Kerzen
from – Startdatum ab dem Candles geladen werden
Rückgabe
TPRCandleList – Liste mit Candle-Daten
Tagesdaten
var candles = connection.GetCandleChart(169286, DateTime.Now.AddDays(-10));
Minuten
var candles = connection.GetCandleChart(169286, 15, DateTime.Now.AddDays(-10));
Anzahl
var candles = connection.GetCandleChart(169286, 12, 42);

GetIntradayChart

Wichtige Overloads
TPRQuoteTickList GetIntradayChart(int symbolNo, DateTime from)
                                TPRQuoteTickList GetIntradayChart(int symbolNo, DateTime from, int dayCount)
                                bool GetIntradayChart(int symbolNo, DateTime from, out TPRQuoteTickList last, out TPRQuoteTickList ask, out TPRQuoteTickList bid, int dayCount)
                                    
                                    TPRQuoteTickList GetIntradayChart(SymbolNo startDate, DateTime endDateThisLoad, TPRQuoteTypes quoteType)
                                    
Parameter
symbolNo – interne Symbolnummer des Instruments
from – Startdatum der Abfrage
dayCount – Anzahl der Tage ab from
startDate – Startdatum der Abfrage (für erweiterten Overload)
endDateThisLoad – Enddatum der Abfrage
quoteType – Art der Kursdaten (siehe unten)
last – Rückgabeparameter für Last-Ticks
ask – Rückgabeparameter für Ask-Ticks
bid – Rückgabeparameter für Bid-Ticks
TPRQuoteTypes (Kursarten)
TPRQuoteTypes.OFF_MARKET – Vorbörsliche und nachbörsliche Kursfeststellungen (außerhalb der regulären Handelszeiten)
TPRQuoteTypes.last – Tatsächlich gehandelte Preise (letzter ausgeführter Trade / Schlusskurs eines Ticks)
TPRQuoteTypes.bid – Kaufkurs: höchster Preis, den ein Käufer aktuell bereit ist zu zahlen
TPRQuoteTypes.ask – Verkaufskurs: niedrigster Preis, zu dem ein Verkäufer aktuell bereit ist zu verkaufen
Rückgabe
je nach Overload TPRQuoteTickList oder bool
bei bool: true = Daten erfolgreich geladen, false = Laden fehlgeschlagen
Einfach
var ticks = connection.GetIntradayChart(169286, DateTime.Now.AddDays(-1));
Mit Bid/Ask
TPRQuoteTickList last, ask, bid;
                                    connection.GetIntradayChart(169286, DateTime.Now.AddDays(-3), out last, out ask, out bid, 1);
Mit QuoteType
var ticks = connection.GetIntradayChart(169286, DateTime.Now.AddDays(-1), DateTime.Now, TPRQuoteTypes.last);

Market Depth

var depth = connection.GetMarketDepth(169286);
Signatur
TPRMarketDepth GetMarketDepth(int symbolNo)
Parameter
symbolNo – interne Symbolnummer des Instruments
Rückgabe
TPRMarketDepth – Markttiefe mit Ask- und Bid-Seite sowie Kursinformationen
Ask
foreach (var a in depth.Ask)
                                                {
                                                    var price = a.Quote;
                                                }
Bid
foreach (var b in depth.Bid)
                                                {
                                                    var price = b.Quote;
                                                }

Options Matrix

var matrix = connection.GetOptionsMatrix(169286);
Signatur
TPROptionsMatrix GetOptionsMatrix(int symbolNo)
Parameter
symbolNo – interne Symbolnummer des Basiswerts
Rückgabe
TPROptionsMatrix – strukturierte Optionsmatrix zum Basiswert

Wichtige Objekte

TPRSymbol

SymbolNo – interne eindeutige Symbolnummer
ISIN – internationale Wertpapierkennnummer
WKN – nationale Kennung
Name – Bezeichnung des Instruments
SymbolString – Kürzel / Symbolanzeige
LastBid – letzter Geldkurs
LastAsk – letzter Briefkurs
LastTrade – letzter gehandelter Kurs
DayOpen – Tageseröffnung
DayHigh – Tageshoch
DayLow – Tagestief
DayVolume oder Volume – Tagesvolumen, sofern verfügbar

TPRCandle

Open – Eröffnungskurs
High – Höchstkurs
Low – Tiefstkurs
Close – Schlusskurs
Time – Zeitstempel der Candle
Volume – Volumen der Candle

TPRQuoteTick

Quote – Kurs des Ticks
Time – Zeitstempel
Volume – Volumen zum Tick

Hinweise

Vor allen API-Aufrufen muss ein erfolgreicher Login erfolgen
PushFeed nicht im UI-Thread verarbeiten
SymbolNo ist die zentrale Referenz für fast alle Methoden
ExchangeId = 0 bedeutet keine Einschränkung
Risikohinweis: Futures, Aktien und Devisenhandel beinhalten ein erhebliches Risiko und sind nicht für jeden Anleger geeignet. Ein Investor könnte ganz oder mehr als das investierte Kapital verlieren. Risikokapital ist Geld, das verloren gehen kann, ohne die finanzielle Sicherheit oder den Lebensstil zu gefährden. Nur Risikokapital sollte für den Handel verwendet werden und nur diejenigen mit ausreichendem Risikokapital sollten den Handel in Betracht ziehen. Die Wertentwicklung in der Vergangenheit ist nicht notwendigerweise ein Indikator für zukünftige Ergebnisse.