|
Gruppen: Kunde
Beiträge: 4
|
Hallo zusammen,
ich bin noch nicht sehr vertraut mit Tai-Pan Realtime. Ich möchte gerne historische Aktienkurse abrufen. Am besten auf Tick Ebene oder sekündlich bis minütlich und dabei über einen Zeitraum von ca 10 Jahre.
Idealerweise sollten die Daten in einer Text-Datei oder csv Datei abgespeichert werden (Mir reicht eigentlich Datum und Close)
Ich bin leider kein versierter Programmierer und komme mit den Programmieranleitungen nicht zurecht. Ich habe hier im Forum schon geschaut und bin auf ein Excel-File gestoßen, was eigentlich genau das macht was ich möchte aber ich denke Excel ist mit der Datenflut überfordert, denn bei ca. 65000 Zeilen ist Schluss, was nicht mal einen Monat entspricht...
Kann mir jemand helfen? Vielleicht mit einem einfach Programm oder ein Hinweis wie ich das umsetzen kann?
Herzlichen Dank und liebe Grüße
Frank C
|
|
Gruppen: Kunde
Beiträge: 5
|
Ich habe Ihnen dazu eine Boardmail geschrieben. ich habe eine funktionierende Anwendung, die das alles leistet.
|
|
Gruppen: Kunde
Beiträge: 4
|
Hallo, kannst Du einen entsprechenden C# Quelltext mal hier veröffentlichen? Ich kann zwar mit dem Objekt IIntradayChartQuickAccess Tickdaten zu einem Instrument abrufen (jeweils für einen Tag) aber nach Abruf von etwa 100 Tagen wird der Abruf sehr langsam und Taipan Realtime belegt 3,2GB im RAM des Windows-PC's. Zu dem Zeitpunkt sind gerade mal ca. 8000 Ticks abgerufen. Wenn ich den Abruf bremse durch eine 2 Sekunden Pause zwischen 2 Tagen dann bleibt mein Programm nicht hängen und dann gibt Taipan Realtime den Speicher ab und an wieder frei. Aber irgendwie gefällt mir diese "Lösung" noch nicht so recht. Hier der entsprechende Programmabschnitt: Code: private void exportItem(string itemNummer) { TPRTDataBase = (DataBase)TPRTObject.DataBase; float[] Kurse; DateTime[] Zeit; Int32[] Volume; startDate = DateTime.Parse("01.01.2017"); stopDate = DateTime.Now.Date; aktDate = startDate; int i = Int32.Parse(itemNummer); int rel = 0; int ticks = 0; while (true) { if (aktDate > stopDate) break; IIntradayChartQuickAccess IDAccess = (IIntradayChartQuickAccess)TPRTDataBase.IntradayChart(i, 9, aktDate); Kurse = (float[])IDAccess.IntradayData2(TPRQuickAccessKursArten.TPRQuickAccessKursArtenClose); Zeit = (DateTime[])IDAccess.IntradayData2(TPRQuickAccessKursArten.TPRQuickAccessKursArtenZeit); Volume = (Int32[])IDAccess.IntradayData2(TPRQuickAccessKursArten.TPRQuickAccessKursArtenVolume); textBox1.Text = aktDate.ToString(); ticks = ticks + Kurse.Count(); textBox2.Text = Kurse.Count().ToString() + " " + ticks.ToString(); aktDate = aktDate.AddDays(1); System.Threading.Thread.Sleep(2000); } }
|
|
Gruppen: Mitarbeiter
Beiträge: 54
|
Hallo Herr Frohnapfel, Sie könnten dies mit dem Arrayloader IIntradayChartCollection versuchen: Code: ArrayLoader loader = new ArrayLoader(); //securities are identified with a unique symbol number int symbolNr = 78303; //this is the symbol number of Dt.Telekom at Xetra (555750.ETR) DateTime startDatum = DateTime.Now.AddDays(-1); //start date is yesterday int bidAsk = 0; //0: without Bid-/Ask-data, 1: with Bid-/Ask-data
IIntradayChartCollection ichartCol = loader.Intradaycharts(symbolNr, startDatum, bidAsk) as IIntradayChartCollection; if( ichartCol != null ) { //the IntradayChartCollection contains the intraday charts... int count = ichartCol.Count; for( int i = 1; i <= count; i++ ){ IIntradayChart ichart = ichartCol[i] as IIntradayChart; if( ichart != null ){ //...which can be read now Debug.WriteLine(Environment.NewLine); foreach( IIntradayChartEintrag entry in ichart ){ Debug.WriteLine("{0}{1}", entry.Zeit.ToShortTimeString(), entry.Kurs); } } } }
Entwicklung | Lenz+Partner GmbH | vwd group Phone: +49 231 9153-300 | Fax: +49 231 9153-399 entwicklung@lp-software.de | www.LP-software.de | www.vwd.com
|
|
Guest |