Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature currencies CSV export and import #322

Conversation

alani1
Copy link
Contributor

@alani1 alani1 commented Jun 20, 2015

Hi Andreas,

Hier der currency support fuer CSV Exporter. Ich bin mir nicht ganz sicher ob BaseCurrency richtig bezeichnet ist, ev. muesste das Label getauscht werden, die Base Currency ist fuer mich eigentlich die Waehrung in welcher das Konto gefuehrt wird. Das Forex Objekt gibt jedoch mit getBaseCurrency die Currency zurueck in welcher das Security gefuehrt und damit auch die Transaktion ausgefuehrt wurde.

Ebenfalls gibt es anscheinend Transactions welche kein ForexObjekt haben (wenn diese in der Kontowaehrung sind), meiner Meinung nach muesste jede Transaktion ein ForexObjekt haben, in diesem Fall einfach mit einem Wechselkurs von 1 und BaseCurrency=TargetCurrency. Da wird man sich sicher viel Fehlerhandling and verschiedenen Orten im Code sparen koennen.

alani1 and others added 17 commits June 5, 2015 13:04
Squashed commits:

[a8e08a6] Removing unecessary calls to Long.valueOf(..) at various places
[c12a20b] Fixes after rebase to HEAD on upstream
[e5288f3] more cleanup on IBFlexStatementExtractor
first try at TestCase
[6e57e00] - changed to use Extractor and PDFImport Dialog
- implemented most of buchen's feedback except testcase
[7913e75] More code cleanup
[3c8dcd2] Code cleanup and more documentation
[70cee9c] Initial Version of Interactive FlexStatement Importer

Issue: portfolio-performance#299
Signed-off-by: Alain Schaefer <[email protected]>
[squashed commits, cleanup of Application.e4xmi for a clean history]
Signed-off-by: Andreas Buchen <[email protected]>

Signed-off-by: Andreas Buchen <[email protected]>
* Removed unused methods #getAccount and #getPortfolio
* Removed assertion on language dependent string in tests
* Made methods as private as possible
* Removed undocumented parameters definitions from javadoc
* Minor formatting changes, no code commented out

Issue: portfolio-performance#299
Signed-off-by: Andreas Buchen <[email protected]>
-Guess date format from given values
-Better matching of column names: treat Umlauts better, ignore whitespace

Issue: portfolio-performance#313
Signed-off-by: Sebastian Baumhekel <[email protected]>
[reformatted]
Signed-off-by: Andreas Buchen <[email protected]>

Signed-off-by: Andreas Buchen <[email protected]>
…id and withholding tax (e.g. negative dividends), see portfolio-performance#310

* support Interest received
* only set the security on dividend and withholding tax
…ed on OS

Mars (the next Eclipse version) will not support auto-update for the
Mac OS X version. This change updates the client to display an
appropriate message if the update properties indicate that the update
is not supported.
…ractive_brokers

Feature interactive brokers
@buchen
Copy link
Member

buchen commented Jun 20, 2015

Ich bin mir nicht ganz sicher ob BaseCurrency richtig bezeichnet ist, ev. muesste das Label getauscht werden, die Base Currency ist fuer mich eigentlich die Waehrung in welcher das Konto gefuehrt wird. Das Forex Objekt gibt jedoch mit getBaseCurrency die Currency zurück in welcher das Security gefuehrt und damit auch die Transaktion ausgefuehrt wurde.

Mein Gedanke bisher: base currency und term currency sind Begriffe die beim Wechselkurs auftauchen. Also von welcher Währung in welche Währung bei dem Wechselkurs umgewandelt wird. Die Begriffe beziehen sich also auf den Wechselkurs, nicht auf die Währung der Buchung.

Wenn also ein Betrag nicht in der Zielwährung vorliegt (also eine $ Betrag soll auf einem EUR Konto gebucht werden), dann merke ich mir neben dem EUR Betrag (der ist ja sowieso in der Buchung) den $ Betrag plus base/term/Wechselkurs. Im Prinzip ist natürlich die term currency dann überflüssig, weil die der Währung in der Buchung entsprechen muss.

Ebenfalls gibt es anscheinend Transactions welche kein ForexObjekt haben (wenn diese in der Kontowaehrung sind), meiner Meinung nach muesste jede Transaktion ein ForexObjekt haben, in diesem Fall einfach mit einem Wechselkurs von 1 und BaseCurrency=TargetCurrency. Da wird man sich sicher viel Fehlerhandling and verschiedenen Orten im Code sparen können.

Im ersten Moment habe ich mich dagegen entschieden, weil ansonsten das XML extrem aufgebläht werden würde mit zusätzlichen (aber nicht relevanten) Informationen. Das könnte man allerdings natürlich im Speicher nachpflegen und muss es nicht persistieren. Und dann hoffe ich im Normalfall mich dem Betrag + Währung in der Buchung arbeiten zu können (also bei der Performance-Berechnung). Die sind ja in der richtigen Währung. Und nur beim Editieren der Buchung (also auch beim Import) auf die Forex zurückzugreifen.

Es gibt ja noch andere Punkte: Bei der Umbuchung zwischen verschiedenen Währungskonten speichern ich das Forex Objekt momentan nur in der abgehenden Buchung. Im Prinzip könnte man das mit genau umgekehrten Vorzeichen auch in der eingehenden Buchung speichern. Dann aber einen Wechselkurs mit 1/wk speichern, und mit welcher Genaugigkeit? Ich hab mich erst mal dagegen entschieden.

Das sind beider aber absolut valide Punkte. Und wenn an vielen Stellen der Code unnötig kompliziert wird, dann kann man sich das wieder anschauen und refactoren.

Vielen Dank für die Change. Es regnet hier. Damit wird es nix mit vertikutieren und ich kann die mir im Laufe des Tages anschauen 😄

@@ -143,7 +187,8 @@ public void exportSecurityMasterData(File file, List<Security> securities) throw
Messages.CSVColumn_WKN, //
Messages.CSVColumn_TickerSymbol, //
Messages.CSVColumn_Description, //
Messages.CSVColumn_TickerSymbol });
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hier könnte man die Notiz auch gleich mit exportieren, oder was meinst Du?

@buchen
Copy link
Member

buchen commented Jun 20, 2015

Zur Namensgebung "Hauptwährung". Das Label heißt "Hauptwährung". Ich überlege, ob man das vielleicht in "Originalwährung" oder "Basiswährung" oder so nennt. Nehmen wir an, ich habe eine $ Dividende auf meinem EUR Konto. Dann hätte ich Hauptwährung intuitiv eher auf das Konto bezogen. Ich habe gerade meine PDF Dokumente meiner Bank durchgeschaut - leider habe ich keine gute Bezeichnung gefunden. Da sind es unbenannte Spalten...

@alani1
Copy link
Contributor Author

alani1 commented Jun 20, 2015

Verstehe, dann vertausch ich die Labels. Ich werde CVSImport auf den gleichen PR nehmen, da ich die Labels aus Messages brauche, das sollte ich heute noch schaffen. Bei uns hat die Regenzeit nun def. begonnen, es giesst aus Kuebeln.

@alani1
Copy link
Contributor Author

alani1 commented Jun 20, 2015

Hi Andreas,

Bitte entschuldige dass da so viele Commits sind, am Schluss werde ich dann squashen. Machen so die Labels jetzt mehr sinn (Hauptwaehrung) ? Das mit dem ForexData=null lassen wir in dem Fall so. Fuer CSVImport ist hier jetzt ein erster Entwurf, ich muss das morgen aber nochmals genau ueberpruefen/Testen. Folgendes ist mir noch aufgefallen.

  1. Ich habe ein Issue mit negative Shares kannst du mal versuchen das CSV snippet unten zu importieren ? Wesshalb meldet SharesHeldConsistencyCheck negative Shares, aber danach sind die Shares korrekt ohne das Issue zu beheben ?
  2. Mir ist aufgefallen dass Fees in der Kontowaehrung sind, bei mir sind die Transaktionskosten aber in der Waehrung des Handelsplatzes d.h. in der gleichen Waehrung wie das Securitiy
  3. Wieviele Nachkommastellen haben wir fuer die currency exchange rate ? Mein Broker gibt mir 5 Stellen, ich haben den CSV Export jetzt auf 5 Stellen angepasst.
Type;Ticker Symbol;Date;Time;Shares;T Price; C Price;Proceeds;Fees;Value;Currency;Exchange Rate
Buy;GCM.TO;01.04.2013;09:34:06;12,000;0.27;0.275;-3,240.00;-16.2;3,256.20;CAD;0.93153

So jetzt brauche ich eine Pause ....

@alani1 alani1 changed the title Feature currencies export Feature currencies CSV export and import Jun 20, 2015
@alani1 alani1 closed this Jun 20, 2015
@alani1 alani1 deleted the feature_currencies_export branch June 21, 2015 01:38
@buchen buchen mentioned this pull request Dec 27, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants