Skip to main content

CSV-Im- und Exporte

Import

Einmaliger Manueller Import Kursdaten/Stammdaten

image-1655629504632.png


Voraussetzung

Für den Import können frei definierte Importformate verwendet werden. Für den Import muss das Importformat jedoch zwingend dem Format der importierenden Daten entsprechen. Die jeweils verwendeten Elemente können dabei im Importformat nochmals im Detail geprüft werden.

Modus

Der Import von Kursdaten kann mit oder ohne einen Bezug zu einer vorher ausgewählten Aktie/Titel erfolgen:

  • In der freien Varianten ohne vorherige Auswahl eines Titels, müssen die Daten zugeordnet werden können. Daher muss hier ein Importformat verwendet werden, was eine Zuordnung zum Titel erlaubt wie Symbol, ISIN, WKN oder Name des Titels. Bei Erfolg werden anschließend, die Daten im Formular/Abschnitt Protokoll aufgeführt.
  • Alternativ kann über das Kontextmenü auch ein Kursdatenimport für einen speziellen Titel erfolgen, d.h. pro Zeile ist keine Information zur verwendeten Aktie notwendig. In der Titelleiste erscheint hier dann der verwendete Importtitel.

Importformate

Teilweise können Titel nur über exotische Datenquellen aktualisiert werden, die die Kursdaten in unterschiedlichen Formaten anbieten. Die Daten können für jeden Titel als File oder für mehre Titel in einem File vorliegen. Das Programm unterstützt für das automatische Einlesen folgende Formate:

  • ASCII/CSV

Vorgehen und Schritte

Ein einmaliger Import von Kursdaten (Aufruf: Hauptmenü.Kurs.Import) ist mit Hilfe eines Importformats (siehe Hauptmenü.Einstellungen.Importformat) ausführbar. Alle gefundenen und zugeordneten Werte werden anschließend im Protokoll gelistet.

  1. Speichern Sie die Datei(en) mit einem aussagekräftigen Namen 
  2. Öffnen des Menüs unter: Hauptmenü/Kurs/Import
  3. Wählen Sie das geeignete Importformat, welches Ihrer Datei-Struktur entspricht     

Einschränkungen und Auslesen lokaler Importdateien z.-B. von Drittprogrammen

Der Import von ganzen Verzeichnissen mit Einzelkursdateien pro Wert ist mit dem manuellen Import nicht möglich. Diese Variante ist in unterschiedlichsten Kombinationen allerdings über die Bereitstellung von passenden konfigurierten Internetadressen möglich. Diese können so definiert werden, dass diese ins Filesystem zeigen (Adresse sollte hier dann im Format file:///<LokalerPfad> hinterlegt sein.) Weitere im nachfolgenden Kapitel.

Automatische Import Kursdaten

image-1655629512253.png


Wird die automatische Anbindung eines Datenanbieters über CVS / Textdaten angestrebt oder müssen ganze Kursverzeichnisse eingelesen werden, so besteht die Möglichkeit des Zugriffs aus lokale/Netzdateien über entsprechend angepasste Internetadressen (Hauptmenü.Einstellungen.Internetadressen). Wichtig ist hier die Definition als "file:///". Anschließend erfolgt der normale Zugriff aufs Dateisystem mit der vollen Pfadangabe. Der Zugriff auf Netzwerklaufwerke ist möglich.

Soll ein Drittprogramm zur Kursdatenbereitstellung über ASCII Files genutzt werden, kann dies zusätzlich über zeitgesteuerte Aktualisierungen (normale Intervallaktualisierung fürs Internet) realisiert werden.

Wird nur ein einmaliger Import realisiert für ein Kursdatenverzeichnis z.B. mit \Daten\Import und 562299.TXT, 562300.TXT so wären folgende Schritte notwendig:

  1. Definition einer eigenen Internetadresse mit Verweis aufs lokale Verzeichnis file:///c:\Daten\Import\{WKN}.TXT. Die WKN wird hier als Platzhalter definiert, der vom Programm ausgefüllt wird (Alternativ ist natürlich auch {ISIN} möglich.
  2. Anpassung der Markteinstellung, um die neue Aktualisierungsadresse zu verwenden (je nach Bedarf und/oder Tagesaktualisierungsadresse oder die Adresse für die historischen Kursdaten)
  3. Aktualisierung der Kursdaten je nach Bedarf (Tagesdaten/ EOD-Update)

Export

image-1655629517210.png


Über den Menüpunkt Hautpmenü.Kurse.Export wird ein Exportmodul geöffnet. Der Export erfolgt als CSV Textdatei, die festlegbare Felder in festlegbarer Reihenfolge enthält. Der Export erfolgt in

  • Einzeldateien oder in einer
  • Gesamtdatei
    entsprechend der Auswahl in der unteren Toolbar (Liste, Einzeln) für alle per Checkbox markierten Werte. Der Export ist so immer nur für Märkte möglich. Ein Einzelexport von Kursdaten eines Titels ist zur Zeit nicht vorgesehen.

Arbeitsschritte

  1. Per Quickauswahl (Quickselect) kann das Textformat aus bereits definierten Importformaten übernommen werden, d.h. Position und Inhalt wird übernommen.
  2. Beim Export sollte das Trennzeichen, Datumsformat und das Zeitformat definiert und in jedem Fall geprüft werden.
  3. Mit der Definition einer Startzeile und Endzeile pro Datei sind spezielle Formate abbildbar. In diesen können als freie Variablen {DATE} und {NOW} für die Uhrzeit Verwendung finden. Das "Freie Feld" kann mit beliebigem Inhalt oder fixen Zeichenketten gefüllt werden und steht innerhalb der Positionen als Auswahlfeld zur Verfügung.
  4. Auswahl der gewünschten Märkte für den Export (Einzelauswahl von Titeln ist nicht möglich)
  5. Start mit dem Button "Starten" in der unteren Toolleiste

Beispiel

Entsprechend des obrigen Screenshots

EXPORT VOM: 16.05.2009 18:57
Bauer`F;516810;04.07.2006;00:00;17,390;52890;16,600;17,390;16,600;
Bauer`F;516810;05.07.2006;00:00;17,150;17518;17,390;17,390;17,050;
Bauer`F;516810;06.07.2006;00:00;17,280;11937;17,220;17,280;16,900;
Bauer`F;516810;07.07.2006;00:00;16,990;4333;17,000;17,030;16,920;
Bauer`F;516810;10.07.2006;00:00;16,950;3414;17,000;17,000;16,850;
...
Alle anderen Titel vom MDAX Parkett.
Formatstrings für das Zahlenformat

Formatbezeichner werden in der folgenden Form angegeben:

["-"] [width] ["." prec] type

Eine optionale Angabe für die linksbündige Ausrichtung:
Eine optionale Breitenangabe: width
Eine optionale Genauigkeitsangabe: prec]
Das Zeichen für den Konvertierungstyp: type

In der folgenden Tabelle sind die verschiedenen Werte aufgeführt:

  • d Dezimal. Das Argument muss ein Integerwert sein. Der Wert wird in einen String umgewandelt, der aus Dezimalzahlen besteht. Wenn der Format-String einen Bezeichner für die Genauigkeit enthält, muss der resultierende String mindestens die angegebene Anzahl von Stellen aufweisen. Enthält er weniger Stellen, wird der String auf der linken Seite mit Nullen aufgefüllt.
  • u Vorzeichenlose Dezimalzahl. Das Format "u" entspricht dem Format "d", allerdings enthält der resultierende String kein Vorzeichen.
  • e Wissenschaftliche Notation. Das Argument muss ein Gleitkommawert sein. Der Wert wird in einen String mit der folgenden Form umgewandelt: "-d,ddd...E+ddd". Wenn es sich um eine negative Zahl handelt, beginnt der String mit einem Minuszeichen. Vor dem Dezimaltrennzeichen steht immer eine Ziffer.Die Gesamtzahl der Stellen im Ergebnis-String (einschließlich der Ziffer vor dem Dezimalkomma) wird durch den Genauigkeitsbezeichner im Format-String festgelegt. Ist dieser nicht vorhanden, wird eine vorgegebene Genauigkeit von 15 Stellen angenommen. Auf den Exponenten "E" im String folgen immer ein Plus- oder Minuszeichen und mindestens drei Stellen.
  • f Fest. Das Argument muss ein Gleitkommawert sein. Der Wert wird in einen String der folgenden Form umgewandelt: "-ddd.ddd...". Wenn es sich um eine negative Zahl handelt, beginnt der String mit einem Minuszeichen.Die Anzahl der Stellen nach dem Dezimalkomma wird durch den Genauigkeitsbezeichner im Format-String festgelegt. Ist dieser nicht vorhanden, wird eine vorgegebene Genauigkeit von zwei Dezimalstellen verwendet.
  • g Allgemein. Das Argument muss ein Gleitkommawert sein. Der Wert wird unter Verwendung des Formats Fest oder Wissenschaftliche Notation in den kürzestmöglichen Dezimal-String umgewandelt. Die Anzahl der signifikanten Stellen im resultierenden String wird durch den Genauigkeitsbezeichner im Format-String festgelegt. Ist dieser nicht vorhanden, wird eine vorgegebene Genauigkeit von 15 Stellen angenommen.Nachfolgende Nullen werden aus dem resultierenden String entfernt. Ein Dezimaltrennzeichen wird nur bei Bedarf angezeigt. Für den resultierenden String wird das Festkommaformat verwendet, wenn die Anzahl der Stellen vor dem Dezimaltrennzeichen kleiner oder gleich der festgelegten Genauigkeit und der Wert größer oder gleich 0,00001 ist. In allen anderen Fällen wird die wissenschaftliche Notation benutzt.
  • n Zahl. Das Argument muss ein Gleitkommawert sein. Der Wert wird in einen String der folgenden Form umgewandelt: "-d,ddd,ddd.ddd...". Das Format "n" entspricht dem Format "f", allerdings enthält der resultierende String Tausendertrennzeichen.
  • m Währung. Das Argument muss ein Gleitkommawert sein. Der Wert wird in einen String umgewandelt, der einen Währungsbetrag darstellt. Die Steuerung der Konvertierung erfolgt mithilfe der globalen Variablen CurrencyString, CurrencyFormat, NegCurrFormat, ThousandSeparator, DecimalSeparator und CurrencyDecimals oder deren Entsprechungen in einer TFormatSettings-Datenstruktur. Enthält der Format-String einen Genauigkeitsbezeichner, setzt dieser den Wert in der globalen Variablen CurrencyDecimals bzw. in deren TFormatSettings-Entsprechung außer Kraft.

Bei allen Gleitkommaformaten wird das Zeichen für das Dezimal- bzw. das Tausendertrennzeichen aus den globalen Variablen DecimalSeparator und ThousandSeparator bzw. deren TFormatSettings-Entsprechungen ausgelesen.

Die Bezeichner für Index, Breite und Genauigkeit können direkt durch Angabe eines Strings mit dezimalen Ziffern (z.B. "%10d") oder indirekt mithilfe von Sternchen (z.B. "%*.*f") angegeben werden. Im letzteren Fall wird das Argument, das in der Argumentliste auf das Sternchen folgt (es muss sich dabei um einen Integerwert handeln), als tatsächlicher Wert verwendet. Ein Beispiel:

Der Breitenbezeichner legt die minimale Länge des Feldes für die Konvertierung fest. Ist der resultierende String kürzer als die minimale Feldlänge, wird er mit Leerzeichen aufgefüllt. Per Vorgabe werden die Leerzeichen vor dem Wert eingefügt, um eine rechtsbündige Ausrichtung zu erreichen. Enthält der Formatbezeichner jedoch einen Indikator für linksbündige Ausrichtung (vor dem Breitenbezeichner steht in diesem Fall ein Minuszeichen), werden die Leerzeichen nach dem Wert eingefügt und dieser linksbündig ausgerichtet.