# CSV-Portfolioimport-Formatbeschreibung ## Allgemeine Hinweise Die Konfigurationen erfolgen innerhalb der INI-Dateien. Dabei gelten folgende Grundansätze: - Normalisierung aller Zeilen, so dass Leerzeichen am Anfang und Ende ignoriert werden - " oder ' für die Werte können genutzt werden, werden aber praktisch ignoriert. Die Zeichen sind damit jedoch als Sonderzeichen zu betrachten - Zeilen mit # am Anfang werden ignoriert und können daher als Kommentar-Zeilen verwendet werden Die INI-Konfiguration nutzt praktisch einen Transformationsalgorithmus, der ein Zielformat beschreibt für den Trade-Import. Die INI-Konfiguration nutzt daher alle Felder aus dem Trade-Import, die hier dann in der Position oder Default-Werten etc. zu beschreiben sind. ## Nutzbare Import-Felder
Schlüssel
Typ
Benötigt (MUSS-Feld)
Automatischer Abgleich mit den gleichnamigen Listen
Hinweise
ciName ZeichenketteEmpfohlen Titel für die Transaktion d.h. z.B. Aktienname. Der Name wird nur verwendet, wenn mit der ISIN der zugehörige Titel nicht gefunden werden kann. Der Name wird dann für die automatische Neuanlage genutzt. Sonderfall: - Soll ein Datensatz gelöscht werden, so muss hier "DELETE" eingetragen werden.
ciOrdernummer Ganzzahlige NummerEmpfohlenTRANSAKTIONSLISTEN Eindeutige Transaktionsnummer. Diese wird benötigt, um Dopplungen zu vermeiden und bei einem erneuten Reimport diese Transaktion zu überspringen. Die Order-Nummer sollte eineindeutig für ein Konto sein.
ciDepot ZeichenketteNotwendig KONTEN Es wird praktisch der Name oder die Konto-Nummer des Kontos angegeben. Dabei erfolgt automatisch ein Vergleich auf einen möglichen Match mit allen vorhandenen Konten.
ciBoerse Zeichenkette BÖRSEN Zuordnung zur genutzten Börse für die Transaktion. Es wird dabei der Name der Börsen entsprechend Einstellungen / Börsen verwendet.
ciISIN ZeichenketteNotwendig Wenn nur eine WKN vorhanden sein, so kann das Feld auch auf das WKN-Feld gesetzt werden. Dies sollte nur im Daten-Notfall erfolgen!
ciTyp ZeichenketteNotwendig Erlaubte Typen sind: - 'Kauf', - 'Verkauf' - 'Dividende' - 'Haben/Zinsen' - 'Kupon' - 'Verkauf/Bezugsrechte' - 'Soll/Zinsen' - 'Spesen' - 'Einzahlung' - 'Auszahlung' - 'Steuern/Allgemein' - 'Steuern/Zinsabschlag' - 'Steuern/Soli' - 'Steuern/Abgeltungssteuer' - 'Steuern/Kirchensteuer' - 'Steuern/Erstattung' Ist diese Zuordnung so nicht im Import-Format vorhanden muss mittels CiCheck.Pattern (s.u.) ein entsprechender Austausch automatisch vorgenommen werden.
ciDatum DatumNotwendig Transaktionsdatum im Format: DD.MM.YYYY (wenn nicht durch Spezialattribute umgeschrieben)
ciZeit ZweitEmpfohlen Transaktionsdatum im Format: hh:nn (wenn nicht durch Spezialattribute umgeschrieben)
ciKurs GleitkommawertEmpfohlen Transaktionskurs z.B. Kaufkurs. Als Währung wird dabei immer Euro angenommen. Ein Wechsel ist aktuell noch nicht möglich!
ciKursWährungZeichenkette EmpfohlenWÄHRUNGEN Währungskürzel für den importierten Transaktionskurs z.B. €, $ oder EUR, USD, GPD, NOK etc.. Alle Kurs, Volumen, Wert-Angaben werden dann in dieser Währung angenommen. Wird das Feld "ciKurswährungsumrechnung" angegeben, wird automatisch der zugehörige Umrechnungskurs zugeordnet.
ciKurswährungsumrechnung GleitkommawertEmpfohlen Wird hier ein Umrechnungskurs von der hinterlegten Währung zur Hauptwährung angegeben. Bitte beachten Sie, dass hier nur der Umrechnungskurs zur Portfolio-Währung hinterlegt werden kann z.B. EUR/USD, wenn EUR die Portfolio-Währung ist. [![image-1655628082610.png](https://www.shareholder24.com/wiki/uploads/images/gallery/2022-06/scaled-1680-/image-1655628082610.png)](https://www.shareholder24.com/wiki/uploads/images/gallery/2022-06/image-1655628082610.png)
ciKurswährungsumrechnungInvertGleitkommawertOptional Analog ciKurswährungsumrechnung allerdings mit 1/X ausgewertet. Am Beispiel von EURUSD, wird häufig USD-EUR angegeben d.h. 0.88. Sie müssen dann hier diesen Spalten-Wert nutzen! [![image-1655628087943.png](https://www.shareholder24.com/wiki/uploads/images/gallery/2022-06/scaled-1680-/image-1655628087943.png)](https://www.shareholder24.com/wiki/uploads/images/gallery/2022-06/image-1655628087943.png)
ciWertWährungZeichenkette EmpfohlenWÄHRUNGEN Währungskürzel für den importierten Wertkurs z.B. €, $ oder EUR, USD, GPD, NOK etc..
ciWert GleitkommawertOptional Aktueller Gesamtwert der Position
ciWertDatum DatumOptional Datum für den aktuellen Kurs
ciStk GleitkommawertNotwendig Anzahl der Stücke für die Transaktion als Gleitkommawert
ciGewinn GleitkommawertOptional Vorberechneter Gewinn der Transaktion für Verkaufstransaktionen
ciGewinnWährungZeichenkette EmpfohlenWÄHRUNGEN Währungskürzel für den importierten Gewinnwährungskurs z.B. €, $ oder EUR, USD, GPD, NOK etc..
ciGeb GleitkommawertEmpfohlen Höhe der Gebühren für die Transaktion. Ist keine Gebühr angegeben, wird über das Ordervolumen und den Kurs x Stück versucht eine Rückrechnung auf die Gebühr vorgenommen
ciGebWährungZeichenkette EmpfohlenWÄHRUNGEN Währungskürzel für den importierten Gebührenkurs z.B. €, $ oder EUR, USD, GPD, NOK etc..
ciEntscheidung ZeichenketteOptionalENTSCHEIDUNGEN Legt den Einscheidungsantrag an ("Name" als Zuordnungsfeld) oder ordnet einen bestehenden zu
ciBewertung ZeichenketteOptionalBEWERTUNGEN Legt den Bewertungsantrag an ("Name" als Zuordnungsfeld) oder ordnet einen bestehenden zu
ciNotiz ZeichenketteOptional Freies Textfeld, was als Kommentar für die Transaktion hinterlegt wird
ciOrdervolumen GleitkommawertOptional Transaktionsvolumen inkl. Gebühren
ciOrdervolumenWährungZeichenkette OptionalWÄHRUNGEN Währungskürzel für den importierten Ordervolumenkurs z.B. €, $ oder EUR, USD, GPD, NOK etc..
ciStatusZeichenkette "Offen" oder ""Optional Wenn "Offen" dann wird diese Transaktion als "vorläufig" aufgenommen. Dies ist insb. für offene Verkaufsorder d.h. Stoppkurse interessant. Es gibt nur den Status "Offen" oder leer.
## Nutzbare Spezial-Attribute Mittels folgender Spezialausprägungen können spezielle Konstellationen festgelegt werden. Die Attribute sind für alle Zuordnungs-Schlüssel technisch nutzbar. Logisch gibt es nicht in allen Fällen eine Verwendung z.B. das .shorttimeformat macht nur für ciDatum.shorttimeformat Sinn, um das genutzte Datumsformat zu beschreiben.
Attribut
Beispiele
Hinweise
Interpretations-Vorrang-Regel
ciXXX.Wert = XXXXX Konstanter Wert wird festgelegt unabhängig von den Werten in der auszulesenden Datei z.B. ciBoerse.Wert = 'Frankfurt' Wenn ein ".wert" vorgegeben wird, dann sticht dieser Wert d.h. wird immer verwendet
ciXXX.decimalseparator="." ="," Konkrete Beispiele: - ciStk.decimalseparator = '.' Um zwischen europäischen und amerikanischen Zahlenformaten wechseln zu können, ist es möglich für einzelne Positionen das Dezimal-Trennzeichen separat festzulegen.Der festgelegte Wert wird immer verwendet für den Wert. Im Default wird das deutsche Dezimaltrennzeichen mit "," verwendet.
ciXXX.Standard = XXXXX Wenn im Datensatz kein Wert gefunden werden kann, wird stattdessen dieser Wert als "Rückfall-Wert" verwendet Wenn ein ".standard" vorgegeben wird, dann wird dieser verwendet, wenn keine Position zugeordnet wurde oder der Standardwert aus dem Datensatz leer ist
ciXXX.shortdateformat = yyyymmdd = dd.mm.yyyy Konkrete Beispiele: - ciDatum.shortdateformat='[dd.mm](http://dd.mm/).yyyy' - ciDatum.shortdateformat='ddmmyyyy' Datumsformat entspricht hier 4stellige Jahreszahl, 2stelliger-Monat und 2stelliger-Tag Siehe auch [https://docwiki.embarcadero.com/Libraries/Berlin/de/System.SysUtils.FormatDateTime](https://docwiki.embarcadero.com/Libraries/Berlin/de/System.SysUtils.FormatDateTime) Wenn ein ".shortdateformat" vorgegeben ist, dann wird hiermit der aktuelle Wert in das Standard-Datums-Format des lokalen Anwenders übersetzt nachdem aller vorherigen Regeln angewendet worden sind
ciXXX.shorttimeformat = hh:nn:ss = hh:nn Konkrete Beispiele: - ciZeit.shorttimeformat='hh:mm:ss' Zeitformat entspricht hier Stunden, Minuten, Sekunden Siehe auch [https://docwiki.embarcadero.com/Libraries/Berlin/de/System.SysUtils.FormatDateTime](https://docwiki.embarcadero.com/Libraries/Berlin/de/System.SysUtils.FormatDateTime) Wenn ein ".shorttimeformat" vorgegeben ist, dann wird hiermit der aktuelle Wert in das Standard-Datums-Format des lokalen Anwenders übersetzt nachdem aller vorherigen Regeln angewendet worden sind
ciXXX.Pattern = '(.\*) STK' = '(.\*) EUR' Konkrete Beispiele: - ciKurs.Pattern='(.\*) EUR' - ciTyp=7 ciTyp.Pattern='ORDER.(Kauf|Verkauf).' Der eigentliche Wert muss erst ermittelt werden mittels eines Pattern insb. wenn Zusatz-Daten im Feld verwendet werden wie EUR oder STK. Es sind hier für Perl-Reguläre-Ausdrücke zu verwenden mit einer Group-Match-Logik. Es wird dabei immer der Wert der 1. Match-Gruppe verwendet. Dies ist immer der 1. geklammerte Wert d.h. bei 1200 STK und (.\*) STK ergibt dies 1200. Siehe auch [https://docwiki.embarcadero.com/RADStudio/Seattle/en/Regular\_Expressions](https://docwiki.embarcadero.com/RADStudio/Seattle/en/Regular_Expressions) Wenn ein ".pattern" vorgegeben ist, dann wird dieser am Ende angewendet. Wenn dies nicht möglich ist, wird der vorherige Ergebniswert beibehalten
ciXXX.FilenamePattern = '.\*(????????).csv' Konkrete Beispiele: - ciDepot.filenamepattern = 'Verrechnungskonto-(\[0-9\]\*)\_.\*\\.csv' Im Dateinamen wird nach dem Wert mit dem angegebenen Pattern gesucht, wobei der gesuchte Wert in runden Klammern steht (regex-Logik). Damit lassen sich beliebige Werte auch im Dateinamen verschlüsseln und anwenden Siehe auch [https://docwiki.embarcadero.com/RADStudio/Seattle/en/Regular\_Expressions](https://docwiki.embarcadero.com/RADStudio/Seattle/en/Regular_Expressions)
ciCheck.minimumfields= 5Hiermit können bewusst unvollständige Datensätze ausgeschlossen werden. Die angegebene Anzahl sind die erwartete Anzahl von Datensätze (mit Semikolon getrennt)Wenn vorhanden wird dieser Wert initial ausgelesen, um nicht geeignete Datensätze zu ignorieren.
ciCheck.pattern.<nummer> ciCheck.replacement.<nummer> .pattern.1 = '&#3\[8|9\];' .replacement.1= ' & ' Konkrete Beispiele: - ciCheck.pattern.1 = 'Gutschrift:.\*' - ciCheck.replacement.1 = 'Einzahlung' oder - ciCheck.pattern.2 = 'Zinsabschluss (.\*)(\\d){2}\\.(\\d){2}\\.(\\d){4}' - ciCheck.replacement.2 = 'Soll/Zinsen' oder auch komplexe Varianten mit Austausch der Wert-Gruppen durch \\1 \\2 etc. - ciCheck.pattern.1 = '\\ WKN\\ (\[A-Z,0-9\]\*)\\ /\\ (\[A-Z,0-9\]\*)\\ (\[A-Z,0-9,\\ ,\\.,\\-\]\*) DEPOTNR.:\\ (\[0-9\]\*)' - ciCheck.replacement.1 = ';\\1;\\2;\\3;\\4;' Hiermit ist der Austausch von kompletten Stringketten möglich. Dabei wird die Zuordnung zwischen Pattern und Replacement über reguläre Ausdrücke gemacht. Die Nummer sollte eindeutig sein und bei 1 beginnen. Sie wird solange fortgesetzt, bis kein Eintrag mehr in der INI zu finden ist. Das Ersetzen erfolgt dabei priorisiert VOR allen anderen Schritten und kann daher zur Standardisierung von bestimmten Zeichenketten am Anfang der Verarbeitung genutzt werden. Beispiel-Gruppe für drei automatische Ersetzen-Regeln: ciCheck.pattern.1 = '&#3\[8|9\];' ciCheck.replacement.1 = ' & ' ciCheck.pattern.2 = '9-997/7713' ciCheck.replacement.2 = '' ciCheck.pattern.3 = 'manuell' ciCheck.replacement.3 = '' Siehe auch [https://docwiki.embarcadero.com/RADStudio/Seattle/en/Regular\_Expressions](https://docwiki.embarcadero.com/RADStudio/Seattle/en/Regular_Expressions) Die Regel werden startet bei 1 ...X durchgeführt. Der Abbruch erfolgt, wenn zur vorgehenden Nummer kein Nachfolgereintrag mehr gefunden wird.
ciCheck.DefaultColumnSeparator- ciCheck.DefaultColumnSeparator = ";" Standard-Trennzeichen zwischen den Spalten, wenn es nicht ";" sein soll
## Konkrete Beispiele - Im \\Daten\\Import-Verzeichnis finden Sie eine "Autoimport-Trades-Template.ini". Diese wird auch beim Hinzufügen eines neuen Profils im Editor verwendet. Es kann aber auch manuell zum Kopieren genutzt werden. - Alle im \\Daten\\Import-Verzeichnis liegende Dateien mit ... können für eigene Tests verwendet werden - Autoimport-Trades-\*.ini - Autoimport-Depotbestand-\*.ini - Autoimport-Aktienliste-\*.ini