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üsselTypBenö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 NummerEmpfohlen

TRANSAKTIONSLISTEN

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

Zeichenkette

Notwendig

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

Zeichenkette

Notwendig


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

Zeichenkette

Notwendig


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

Datum

Notwendig


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 Empfohlen

WÄ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. 
ciWertWährungZeichenkette Empfohlen

WÄ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

Gleitkommawert

Notwendig


Anzahl der Stücke für die Transaktion als Gleitkommawert

ciGewinn

GleitkommawertOptional
Vorberechneter Gewinn der Transaktion für Verkaufstransaktionen
ciGewinnWährungZeichenkette Empfohlen

WÄ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 Empfohlen

WÄHRUNGEN

Währungskürzel für den importierten Gebührenkurs z.B. €, $ oder EUR, USD, GPD, NOK etc..

ciEntscheidung

ZeichenketteOptional

ENTSCHEIDUNGEN

Legt den Einscheidungsantrag an ("Name" als Zuordnungsfeld) oder ordnet einen bestehenden zu

ciBewertung

ZeichenketteOptional

BEWERTUNGEN

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 Optional

WÄ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.


AttributBeispieleHinweiseInterpretations-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.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

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

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

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 


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 

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