TAI-PAN Realtime COM Dokumentation

TAI-PAN Realtime COM Entwicklerdokumentation

Schnellstart

using TaiPanRTLib;
                
                TaiPanRealtimeClass m_TPR = new TaiPanRealtimeClass();
                
                DataBase db = (DataBase)m_TPR.DataBase;
Zentrales COM Objekt für den Zugriff auf Tai-Pan Realtime. Von hier aus erhalten Sie Datenbank, Datastream, Charts, News und weitere Objekte.

Einbinden der COM-Schnittstelle

Klicken Sie im Solution Explorer mit der rechten Maustaste auf References.
Wählen Sie im Kontextmenü den Eintrag Add Reference...
Suchen und markieren Sie unter COM die Referenz: Tai-Pan Realtime Library 1.0 und bestätigen Sie mit OK.
Bitte achten Sie darauf, dass unter den Eigenschaften von TaiPanRTLib die Option Embed Interop Types auf False steht.

Nutzen der COM-Schnittstelle

using-Anweisung

using TaiPanRTLib;

Objekt erzeugen

TaiPanRealtimeClass m_TPR = new TaiPanRealtimeClass();
                ...
                m_TPR.Quit();
Das Objekt stellt die Verbindung zur Tai-Pan Realtime COM Schnittstelle her. Nach Verwendung sauber mit Quit() schließen.

TaiPanRealtime

Das TaiPanRealtime Objekt stellt die Basis für die Kommunikation zwischen Ihrer Anwendung und Tai-Pan Realtime dar.
TaiPanRealtime TPRTObjekt;
                
                public void ComServerStarten()
                {
                    TPRTObjekt = new TaiPanRealtime();
                }

Database

Verwenden Sie das DataBase Objekt, um vorhandene Daten aus Tai-Pan Realtime auszulesen oder Veränderungen an diesen durchzuführen.
DataBase db = (DataBase)TPRTObjekt.DataBase;

BarChart

Ein BarChart Objekt bietet den Zugriff auf bereits vorkomprimierte Daten (z.B. 5 Minuten Candles) zu einem Symbol.
BarChart bc = new BarChart();

IBarChartEntry

Dieses Interface bietet Zugriff auf die Eckdaten einer Periode, die im BarChart vorhanden sind.
foreach(IBarChartEntry candle in BarChart)
                {
                    // candle.Zeit
                    // candle.Open
                    // candle.High
                    // candle.Low
                    // candle.Close
                    // candle.Volume
                }

Barchart via Data und Data2

Für performante Verarbeitung können Periodendaten direkt als Arrays oder per Pointer ausgelesen werden.
// Data2
                var openKurse = chart.Data2(
                TPRQuickAccessKursArten.TPRQuickAccessKursArtenOpen);
                
                var highKurse = chart.Data2(
                TPRQuickAccessKursArten.TPRQuickAccessKursArtenHigh);
                
                var lowKurse = chart.Data2(
                TPRQuickAccessKursArten.TPRQuickAccessKursArtenLow);
                
                var closeKurse = chart.Data2(
                TPRQuickAccessKursArten.TPRQuickAccessKursArtenClose);
                
                var volumeKurse = chart.Data2(
                TPRQuickAccessKursArten.TPRQuickAccessKursArtenVolume);
                
                var zeiten = chart.Data2(
                TPRQuickAccessKursArten.TPRQuickAccessKursArtenZeit);
// Data
                int[] arrInt = chart.Data;
                
                fixed(void* pointer = &arrInt[0])
                {
                    TPRPERIODE* tprPerioden = (TPRPERIODE*)pointer;
                
                    if(tprPerioden != null)
                    {
                        for(int i = 0; i < chart.Count; i++)
                        {
                            DateTime dt =
                                DateTime.FromOADate(tprPerioden[i].Zeit);
                
                            Debug.WriteLine(
                             "O:{0} H:{1} L:{2} C:{3} V:{4} Z:{5}",
                             tprPerioden[i].Open,
                             tprPerioden[i].High,
                             tprPerioden[i].Low,
                             tprPerioden[i].Close,
                             tprPerioden[i].Volume,
                             dt.ToLongTimeString());
                        }
                    }
                }

Datastream (neue Variante)

Das Datastream Objekt kapselt die Funktionalität für den Abgriff von Realtime Kursdaten. Diese Variante ist die empfohlene moderne Nutzung.
m_TPRTDataStream =
                    m_TPRTObject.DataStream as DataStream;
                
                var datastreamEx =
                    m_TPRTDataStream as IDataStreamEx;
                
                datastreamEx.EnableExEvent();
                
                m_TPRTDataStream.ExEvent +=
                    M_datastream_ExEvent;
                
                // Symbol 123456 nur Bezahltkurse
                m_TPRTDataStream.Add(123456, 0);
                
                // Symbol 555555 alle drei Kursarten
                m_TPRTDataStream.Add(555555, 1);
                
                // Symbol entfernen
                m_TPRTDataStream.Remove(78303);
                
                // Alles entfernen
                m_TPRTDataStream.RemoveAll();

Push-Daten empfangen

private void M_datastream_ExEvent(
                TPRStreamEventID nEventID,
                int SymbolNr,
                float Kurs,
                float Volume,
                DateTime Zeit,
                int LongValue)
                {
                    switch(nEventID)
                    {
                        case TPRStreamEventID.TPRStreamEvent_Price:
                            M_datastream_Bezahlt(
                                SymbolNr, Kurs, Volume, Zeit);
                            break;
                
                        case TPRStreamEventID.TPRStreamEvent_Bid:
                            M_datastream_Geld(
                                SymbolNr, Kurs, Volume, Zeit);
                            break;
                
                        case TPRStreamEventID.TPRStreamEvent_Ask:
                            M_datastream_Brief(
                                SymbolNr, Kurs, Volume, Zeit);
                            break;
                    }
                }

Weiterverarbeitung

private void M_datastream_Brief(
                int SymbolNr, float Kurs,
                float Volume, DateTime Zeit)
                {
                    Debug.WriteLine($"{Kurs}");
                }
                
                private void M_datastream_Geld(
                int SymbolNr, float Kurs,
                float Volume, DateTime Zeit)
                {
                    Debug.WriteLine($"{Kurs}");
                }
                
                private void M_datastream_Bezahlt(
                int SymbolNr, float Kurs,
                float Volume, DateTime Zeit)
                {
                    Debug.WriteLine($"{Kurs}");
                }

Datastream (ALTE Verfahrensweise)

Nicht empfohlen. Nur für Altprojekte.
m_TPRTDataStream.Bezahlt +=
                    M_TPRTDataStream_Bezahlt;
                
                // Hinzufügen Symbolnummer 123456
                m_TPRTDataStream.Add(123456, 0);
                
                // Hinzufügen Symbolnummer 555555
                m_TPRTDataStream.Add(555555, 1);
                
                // Entfernen Symbolnummer 78303
                m_TPRTDataStream.Remove(78303);
                
                // Entfernen aller Symbole
                m_TPRTDataStream.RemoveAll();
private void M_TPRTDataStream_Bezahlt(
                int SymbolNr,
                float Kurs,
                float Volume,
                DateTime Zeit)
                {
                    // SymbolNr
                    // Kurs
                    // Volume
                    // Zeit
                }

IBoerse

Über dieses Objekt kann auf Name und Nummer eines Börsenplatzes zugegriffen werden.
foreach(IBoerse boerse in
                    (IBoersen)db.Boersen)
                {
                    // boerse.Name
                    // boerse.Nr
                }

IChartTimeRange

Dieses Interface muss per Cast abgerufen werden. Danach kann eine Zeitspanne gesetzt werden.
IChartTimeRange range =
                    (IChartTimeRange)new Jahreschart();
                
                DateTime Time1 =
                    new DateTime(2005, 01, 01);
                
                DateTime Time2 =
                    new DateTime(2005, 01, 20);
                
                range.TimeRange(Time1, Time2);

IDepotListe

Ein Objekt vom Typ IDepotListe kapselt alle Symboleinträge einer Depotliste.
foreach(IDepotListe DepotListe in
                    (IListen)db.DepotListen)
                {
                    // DepotListe.Nr
                    // DepotListe.Name
                }

IDepotListe2

Ermöglicht das Hinzufügen und Löschen von Symbolen innerhalb einer Depotliste.
IDepotListe2 DepotListe2;
                
                foreach(IDepotListe DepotListe in
                    (IListen)db.DepotListen)
                {
                    DepotListe2 =
                        (IDepotListe2)DepotListe;
                
                    DepotListe2.Add(79514);
                    DepotListe2.Remove(42);
                    DepotListe2.RemoveAll();
                }

IIntradayChart

Dieses Objekt beinhaltet alle Intradaykurse zu einem Symbol von einem bestimmten Tag. Je nach Anforderung stehen Bezahltkurse sowie Brief-/Geldkurse zur Verfügung.
var heute = DateTime.Now.Date;
                var DAX   = 79514;
                
                // 0 = keine BidAsk Kurse
                IIntradayChart Chart =
                (IIntradayChart)db.IntradayChart(
                    DAX,
                    0,
                    heute);
                
                Chart.KursArt =
                TPRKursart.TPRKursartBezahlt;

IIntradayChartEintrag

Ein IIntradayChartEintrag Objekt stellt Zeitpunkt, Kurswert und Kursvolumen eines Kursticks bereit.
foreach(IIntradayChartEintrag Eintrag
                    in TPRTIntradayChart)
                {
                    // Eintrag.Kurs
                    // Eintrag.Volume
                    // Eintrag.Zeit
                }

IIntradayChartPeriodeEintrag

Stellt die Eckdaten einer komprimierten Periode bereit.
IIntradayChartQuickAccessPeriode IChart;
                
                var heute = DateTime.Now.Date;
                var DAX   = 79514;
                
                // 0 = keine BidAsk Kurse
                IChart =
                (IIntradayChartQuickAccessPeriode)
                db.IntradayChart(DAX,0,heute);
                
                IChart.Komprimierung = 60;
                
                foreach(IIntradayChartPeriodeEintrag Eintrag
                    in IChart)
                {
                    // Eintrag.Open
                    // Eintrag.High
                    // Eintrag.Low
                    // Eintrag.Close
                    // Eintrag.Volume
                    // Eintrag.Zeit
                }

IIntradayChartQuickAccess

Ermöglicht schnellen Zugriff auf komplette Kursreihen eines Wertpapieres als Arrays.
IIntradayChartQuickAccess IDAccess =
                (IIntradayChartQuickAccess)
                db.IntradayChart(
                    79514,
                    9,
                    DateTime.Now.Date);
                
                float[] Kurse =
                (float[])IDAccess.IntradayData2(
                TPRQuickAccessKursArten
                .TPRQuickAccessKursArtenClose);
                
                DateTime[] Zeit =
                (DateTime[])IDAccess.IntradayData2(
                TPRQuickAccessKursArten
                .TPRQuickAccessKursArtenZeit);
                
                Int32[] Volume =
                (Int32[])IDAccess.IntradayData2(
                TPRQuickAccessKursArten
                .TPRQuickAccessKursArtenVolume);

IIntradayChartQuickAccessPeriode

Stellt Kursinformationen bereit, wobei die Daten anhand einer Komprimierung zusammengefasst werden.
IIntradayChartQuickAccessPeriode IChart =
                (IIntradayChartQuickAccessPeriode)
                db.IntradayChart(
                    79514,
                    0,
                    DateTime.Now.Date);
                
                IChart.Komprimierung = 60;
                
                foreach(IIntradayChartPeriodeEintrag Eintrag
                    in IChart)
                {
                    // Eintrag.Open
                    // Eintrag.High
                    // Eintrag.Low
                    // Eintrag.Close
                    // Eintrag.Volume
                }

IIntradayChartCollection (ArrayLoader)

Lädt Intradaydaten mehrerer Tage performant über den ArrayLoader.
ArrayLoader loader = new ArrayLoader();
                
                // Wertpapier über SymbolNr
                int symbolNr = 78303;
                
                // Startdatum = gestern
                DateTime startDatum =
                DateTime.Now.AddDays(-1);
                
                // 0 = ohne BidAsk
                int bidAsk = 0;
                
                IIntradayChartCollection ichartCol =
                loader.Intradaycharts(
                    symbolNr,
                    startDatum,
                    bidAsk)
                as IIntradayChartCollection;
                
                if(ichartCol != null)
                {
                    int count = ichartCol.Count;
                
                    for(int i = 1; i <= count; i++)
                    {
                        IIntradayChart ichart =
                        ichartCol[i] as IIntradayChart;
                
                        if(ichart != null)
                        {
                            foreach(
                            IIntradayChartEintrag entry
                            in ichart)
                            {
                                Debug.WriteLine(
                                "{0}{1}",
                                entry.Zeit.ToShortTimeString(),
                                entry.Kurs);
                            }
                        }
                    }
                }

JahreschartCollection (ArrayLoader)

Lädt End-of-Day Charts mehrerer Symbole gleichzeitig.
ArrayLoader loader = new ArrayLoader();
                
                int[] symbolNr = new int[5]
                {
                    78303,
                    169286,
                    78275,
                    78340,
                    78267
                };
                
                DateTime datumVon =
                new DateTime(2013,8,1);
                
                DateTime datumBis =
                DateTime.Now;
                
                JahreschartCollection jahresCol =
                loader.Jahrescharts(
                symbolNr,
                datumVon,
                datumBis)
                as JahreschartCollection;
                
                if(jahresCol != null)
                {
                    foreach(Jahreschart chart in jahresCol)
                    {
                        foreach(IJahreschartEintrag entry
                        in chart)
                        {
                            Debug.WriteLine(
                            "{0} {1} {2} {3} {4}",
                            entry.Zeit.ToShortDateString(),
                            entry.Open,
                            entry.High,
                            entry.Low,
                            entry.Close);
                        }
                    }
                }

BarChartCollection (ArrayLoader)

Lädt Periodencharts mehrerer Symbole gleichzeitig.
ArrayLoader loader = new ArrayLoader();
                
                int[] symbolNr = new int[5]
                {
                    78303,
                    169286,
                    78275,
                    78340,
                    78267
                };
                
                int minuten = 60;
                int anzahl  = 5;
                
                BarChartCollection barCol =
                loader.Periodencharts(
                symbolNr,
                minuten,
                anzahl)
                as BarChartCollection;
                
                if(barCol != null)
                {
                    foreach(BarChart chart in barCol)
                    {
                        foreach(IBarChartEntry bar in chart)
                        {
                            Debug.WriteLine(
                            "{0} {1} {2} {3} {4}",
                            bar.Zeit,
                            bar.Open,
                            bar.High,
                            bar.Low,
                            bar.Close);
                        }
                    }
                }

IKatalogListe

Das IKatalogListe Objekt ist eine Collection aller in Tai-Pan Realtime vorhandenen Kataloge. Über die Item Eigenschaft (Objekte vom Typ IKatalog) wird der Zugriff auf weitere Details des Kataloges ermöglicht.
foreach(IKatalog Liste in
                    (IKatalogListe)db.KatalogListe)
                {
                    // Liste.Nr
                    // Liste.Art
                    // Liste.Count
                    // Liste.Name
                }

IKatalog

Ein IKatalog Objekt stellt Informationen zu einem Katalog bereit und bietet über die Item Eigenschaft Zugriff auf die darin enthaltenen Einträge.
// siehe Beispiel IKatalogListe

IKursSuchListe

Ein IKursSuchListe Objekt beinhaltet detaillierte Informationen zu Wertpapieren. Dieses Objekt wird von der Methode KursSuche() des Database Objektes zurückgegeben.
IKursSuchListe SuchListe =
                (IKursSuchListe)db.KursSuche(
                TPRSuchKriterien.TPRSucheWertpapiername,
                "volkswagen",
                9,
                1);
                
                foreach(IKursSymbol Symbol in SuchListe)
                {
                    // Symbol.Aktuell
                    // Symbol.AktuellZeit
                    // Symbol.BezahltVolume
                    // Symbol.Boerse
                    // Symbol.Brief
                    // Symbol.BriefVolume
                    // Symbol.BriefZeit
                    // Symbol.EDV
                    // Symbol.FirstTickDate
                    // Symbol.Geld
                    // Symbol.GeldVolume
                    // Symbol.GeldZeit
                    // Symbol.Handel
                    // Symbol.High
                    // Symbol.Low
                    // Symbol.Marktkapitalisierung
                    // Symbol.Name
                    // Symbol.Open
                    // Symbol.PrevClose
                    // Symbol.Symbol
                    // Symbol.SymbolNr
                    // Symbol.Volume
                    // Symbol.Waehrung
                    // Symbol.WPArt
                }

IKursSymbol

Ein Objekt dieses Typs ermöglicht die Abfrage fast aller Spalteninformationen eines Suchergebnisses.
// siehe Beispiel IKursSuchListe

IListen

Mit diesem Objekt können vorhandene Watchlisten und Depotlisten ausgelesen werden.
foreach(IWatchListe Liste in
                    (IListen)db.WatchListen)
                {
                    // Liste.Name
                    // Liste.Nr
                    // Liste.Count
                }
                
                foreach(IDepotListe Liste in
                    (IListen)db.DepotListen)
                {
                    // Liste.Name
                    // Liste.Nr
                    // Liste.Count
                }

IMarkttiefeListe

Dieses Objekt liefert eine Collection über die aktuellen Werte innerhalb der Markttiefe. Alle Einträge sind vom Typ IMarkttiefe.
IMarkttiefeListe TPRTMarkttiefeListe =
                (IMarkttiefeListe)
                db.get_Markttiefe(78303);
                
                foreach(IMarkttiefe MT
                    in TPRTMarkttiefeListe)
                {
                    // MT.Bezahlt
                    // MT.BezahltVolume
                    // MT.BezahltZeit
                    // MT.Brief
                    // MT.BriefVolume
                    // MT.BriefZeit
                    // MT.Geld
                    // MT.GeldVolume
                    // MT.GeldZeit
                    // MT.Position
                }

IMarkttiefe

Ein Objekt vom Typ IMarkttiefe stellt alle Informationen an einer bestimmten Position innerhalb der Markttiefe eines Symbols zur Verfügung.
// siehe Beispiel IMarkttiefeListe

Watchlisten & Depotlisten Hinweise

Watchlisten dienen zur Beobachtung von Symbolen. Depotlisten können zusätzlich Positionsdaten enthalten und aktiv verändert werden.
Typ Beschreibung
Watchliste Beobachtungsliste ohne Bestand
Depotliste Portfolio / Positionsverwaltung

Hinweise zur Wertpapiersuche

Mit KursSuche() lassen sich Symbole nach Namen, ISIN, Symbol, WKN oder weiteren Kriterien finden.
db.KursSuche(
                TPRSuchKriterien.TPRSucheISIN,
                "DE0005557508",
                9,
                1);

News

Ein News Objekt bietet Zugriff auf die News von Tai-Pan Realtime. Die abrufbare Newsliste enthält alle verfügbaren News und kann zusätzlich gefiltert werden.
TaiPanRTLib.News m_News;
                
                TaiPanRTLib.INewsListe ListeNews;
                TaiPanRTLib.INewsItem EineNews;
                
                m_News = new TaiPanRTLib.News();
                
                // Liste der News abrufen
                ListeNews = m_News.NewsListe;
                
                // Filter setzen:
                // alle News von heute
                // Deutsche Telekom
                ListeNews.Filter(
                TaiPanRTLib.NewsTagFilter.TPRNewsTagAlle,
                0,
                "555750");
                
                // News abrufen
                foreach(EineNews in ListeNews)
                {
                    // EineNews.NewsNr
                    // EineNews.Datum
                    // EineNews.Zeit
                    // EineNews.Headline
                    // EineNews.Body
                    // EineNews.Wertpapiere
                }

NewsAbo

Ein News Objekt bietet ebenfalls Zugriff auf abonnierbare Newsquellen.
News m_News = new News();
                
                INewsAboListe AboListe =
                (INewsAboListe)m_News.NewsAboListe;
                
                foreach(INewsAbo Abo in AboListe)
                {
                    // Abo.ID
                    // Abo.Name
                }
                
                // Beispiel Filter:
                // 128 + 16400 = 16528
                
                m_News.Add(16528, "");

IOSListe

Ein Objekt vom Typ IOSListe kapselt alle Symboleinträge einer Optionsscheinliste.
foreach(IOSListe Listen in
                (IListen)db.Optionsscheinlisten)
                {
                    // Listen.Count
                    // Listen.Name
                    // Listen.Nr
                    // Listen.VolaBasis
                }

IOS

Ein Objekt dieses Typs ermöglicht die Abfrage fast aller Spalteninformationen einer IOSListe.
foreach(IOS Liste in Listen)
                {
                    // Liste.Name
                    // Liste.SymbolNr
                    // Liste.Bezahlt
                    // Liste.Brief
                    // Liste.Geld
                    // Liste.Hebel
                    // Liste.Delta
                    // Liste.Gamma
                    // Liste.Theta
                    // Liste.Vega
                    // Liste.Vola
                    // Liste.Restlaufzeit
                    // Liste.Faelligkeit
                }

IStammInfo

Die Informationen dieses Objektes bilden die sinnvolle gemeinsame Schnittmenge aller Wertpapierarten.
foreach(IStammInfo sInfo in
                (IKatalog)db.get_Katalog(42))
                {
                    // sInfo.Aktuell
                    // sInfo.AktuellZeit
                    // sInfo.Boerse
                    // sInfo.EDV
                    // sInfo.FullSymbol
                    // sInfo.ISIN
                    // sInfo.Name
                    // sInfo.Symbol
                    // sInfo.SymbolNr
                    // sInfo.Waehrung
                    // sInfo.WPArt
                }

IStamminformationen

Durch Setzen der Symbolnummer werden automatisch die zugehörigen Stammdaten geladen.
IStamminformationen StammInfo =
                new StamminformationenClass();
                
                StammInfo.SymbolNr = 78303;
                
                // StammInfo.Name
                // StammInfo.Symbol
                // StammInfo.ISIN
                // StammInfo.Branche
                // StammInfo.Land
                // StammInfo.TickSize
                // StammInfo.TickValue
                // StammInfo.Waehrung
                // StammInfo.WertpapierArt

IStamminformationen (ArrayLoader)

Mehrere Stammdatensätze gleichzeitig laden.
ArrayLoader loader = new ArrayLoader();
                
                int[] symbolNr = new int[5]
                {
                    78303,
                    169286,
                    78275,
                    78340,
                    78267
                };
                
                StammdatenCollection stammCol =
                loader.Stammdaten(symbolNr)
                as StammdatenCollection;

ISuchListe

Ein ISuchListe Objekt enthält Treffer einer Suche nach Wertpapieren innerhalb von Tai-Pan Realtime.
ISuchListe liste =
                (ISuchListe)db.KursSuche(
                TPRSuchKriterien.TPRSucheWertpapiername,
                "Telekom",
                9,
                1);
                
                foreach(ISuchSymbol item in liste)
                {
                    // item.Name
                    // item.Symbol
                }

ISuchSymbol

Ein einzelner Treffer innerhalb einer Suchliste.
foreach(ISuchSymbol item in liste)
                {
                    // item.Name
                    // item.Symbol
                    // item.SymbolNr
                    // item.ISIN
                    // item.WKN
                }

IWatchListe

Eine Watchliste enthält beobachtete Wertpapiere.
foreach(IWatchListe wl in
                (IListen)db.WatchListen)
                {
                    // wl.Name
                    // wl.Nr
                    // wl.Count
                }

IWatchListe2

Erweitertes Interface zum Bearbeiten einer Watchliste.
IWatchListe2 wl2 =
                (IWatchListe2)watchliste;
                
                wl2.Add(78303);
                wl2.Remove(1);
                wl2.RemoveAll();

IWertpapier

Ein einzelnes Wertpapierobjekt mit Kurs-, Stamm- und Symbolinformationen.
IWertpapier wp =
                liste.Item(1);
                
                wp.Name;
                wp.Symbol;
                wp.ISIN;
                wp.WKN;
                wp.Aktuell;

IWertpapierListe

Collection mehrerer Wertpapierobjekte.
IWertpapierListe wl =
                katalog.WertpapierListe;
                
                foreach(IWertpapier wp in wl)
                {
                    // wp.Name
                    // wp.Symbol
                }

IZertifikat

Spezialobjekt für Zertifikate und strukturierte Produkte. Je nach Produkttyp stehen Zusatzfelder bereit.
IZertifikat z = 
                (IZertifikat)wp;
                
                // z.B.
                // z.Basiswert
                // z.Hebel
                // z.Barriere
                // z.Laufzeit
                // z.Emittent

Performance Hinweise

Für große Datenmengen bevorzugt verwenden: • ArrayLoader • Data2() Methoden • QuickAccess Interfaces Diese Varianten sind deutlich schneller als COM Einzelzugriffe.

Allgemeine Hinweise

• Tai-Pan Realtime muss installiert sein
• COM Schnittstelle muss registriert sein
• x86 Build oft empfohlen
• COM Objekte sauber freigeben
• Streams nach Nutzung entfernen
• Events korrekt abmelden
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.