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
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.
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:
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
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
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
false – Login fehlgeschlagen
falsche Zugangsdaten
keine Verbindung zum Server
Developer-ID nicht gültig
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
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
Mobile – Mobilnummer
Username – Anzeigename / Benutzername
UserId – interne Benutzer- oder Kunden-ID
UseEMail – Kennzeichen für E-Mail-Benachrichtigungen
UseSMS – Kennzeichen für SMS-Benachrichtigungen
WatchLists – vorhandene Watchlists
Exchanges – Börsenverzeichnis
SecurityTypes – Wertpapierarten
Countries – Länder
NewsSubscriptions – vorhandene News-Abonnements
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
folders – Dictionary mit allen Ordnerobjekten, Schlüssel ist jeweils die Ordner-ID
items – Dictionary mit allen Katalogobjekten, Schlüssel ist jeweils die Item-ID
true – Katalogstruktur erfolgreich geladen
false – Laden fehlgeschlagen
false – Laden fehlgeschlagen
Suche
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
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
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
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.
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
SignaturTPRWatchList 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
false – Löschen fehlgeschlagen
Realtime Feed
GetPushFeed
SignaturTPRPushFeed 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 false – Abo fehlgeschlagen
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 false – mindestens ein Abo fehlgeschlagen oder der Aufruf war nicht erfolgreich
feed.UnsubscribeSymbol(169286); Signatur bool UnsubscribeSymbol(int symbolNo) Parameter
symbolNo – interne Symbolnummer des abzumeldenden Instruments
Rückgabe
true – Abo entfernt
false – Entfernen fehlgeschlagen
Lesen false – Entfernen fehlgeschlagen
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 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
feed.DisconnectFeed();
Candle Charts
GetCandleChart
Verfügbare OverloadsTPRCandleList 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
compression – Komprimierung der Kerzen, z. B. Minutenintervall
count – Anzahl der gewünschten Kerzen
from – Startdatum ab dem Candles geladen werden
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 OverloadsTPRQuoteTickList 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)
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.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
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
je nach Overload TPRQuoteTickList oder bool
bei bool: true = Daten erfolgreich geladen, false = Laden fehlgeschlagen
Einfach bei bool: true = Daten erfolgreich geladen, false = Laden fehlgeschlagen
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
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
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
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
PushFeed nicht im UI-Thread verarbeiten
SymbolNo ist die zentrale Referenz für fast alle Methoden
ExchangeId = 0 bedeutet keine Einschränkung