De/Aktienhandel

From GnuCash
Revision as of 15:25, 17 March 2010 by JoeCoolNY6 (talk | contribs) (Rechtschreibung)
Jump to: navigation, search

Wie man ein Aktien- oder Wertpapier-Depot anlegt und online abfragt ...


Zurück zur Hauptseite


Einleitung

Mit GnuCash kann man eine Vielzahl verschiedener Wertpapiere und auch Edelmetalle verwalten. Dazu gehören:

  • Edelmetalle: XAU - Gold, XAG - Silber, ... als Untergruppe der
  • Währungen: EUR, GBP, USD ...
  • Anleihen, Renten und andere handelbare festverzinsliche Papiere
  • Aktien, also an Börsen gehandelte Unternehmensanteile
  • Fonds, also Papiere von Gesellschaften, die wieder in die zuvor genannten investieren.

Für Kauf und Verkauf dieser Papiere ist natürlich immer maßgeblich, was man auf dem entsprechenden Beleg stehen hat. Will man sich aber zwischendurch einen Überblick über den aktuellen Wert seiner Investitionen machen, so kann man mithilfe des Moduls Finance::Quote Onlinekurse aus verschiedenen Quellen abrufen und zur weiteren Verwendung, etwa in den Portefolio-Berichten, in der Kursdatenbank abspeichern.

Quellen in Finance::Quote

Verschiedene Anbieter wie etwa Börsen und Fondgesellschaften, aber auch Dritte wie Yahoo, bieten auf ihren Webseiten kostenlose Kursinformationen an. Diese sind etwas zeitverzögert, um kommerziellen Anbietern wie Reuters nicht das Wasser abzugraben, für den Privatgebrauch aber allemal gut.

Um diese auszulesen und u.a. für GnuCash zur Verfügung zu stellen, gibt es das eigenständige Projekt http://sourceforge.net/projects/finance-quote. Dorthin sind also auch eventuelle Fehlerberichte zu senden, falls etwa eine Seite ihr Format geändert hat.

Hinweis: Da Windows erstmal nichts mit Perl-Dateien anzufangen weiß, müssen Windows-Benutzer bei den Befehlen in diesem Kapitel i.d.R. perl voranstellen.

Um zu erfahren, welche dieser Quellen dem Perl-Programm Finance::Quote zur Verfügung stehen, gibt man an der Konsole

gnc-fq-dump

ein. Falls hier eine Fehlermeldung kommt, bitte das unten erwähnte gnc-fq-update durchführen.

Eine Übersicht der Kursquellen mit Erläuterungen gibt es in der Referenz.

Um die ausführliche Dokumentation von Finance::Quote zu lesen, kann man an der Konsole

perldoc Finance::Quote

eingeben.

Schließlich kann man, zumindest unter Linux, mit

sudo gnc-fq-update

Finance::Quote mit allen erforderlichen Modulen und eventuellen Schnittstellen zu neuen Datenquellen auf den neuesten Stand bringen, ohne sich erst mit dem Comprehensive Perl Archive Network (CPAN) auseinandersetzen zu müssen.

Die Anleitung hierzu für Windows steht auf der Installationsseite.

Die Qual der Wahl der Quelle

Da das Symbol ein und desselben Papiers bei den verschiedenen Kursquellen recht verschieden sein kann, hier eine Faustregel:

  • Wenn ich als Kleinanleger sowieso nur die Produkte der mit meinem Finanzinstituts X assoziierten Fondgesellschaft Y kaufe, reicht es, wenn ich mich mit der Symbol-Terminologie dieser Gesellschaft vertraut mache.
  • Bin ich aber eine global agierende Heuschrecke, ist es wohl besser, sich mit der Yahoo-Terminologie vertraut zu machen und, soweit möglich, alle Papiere darüber abzurufen.

Zur Zeit - 2009 - macht yahoo_europe durch ein geändertes Format Probleme. Man kann aber anscheinend auch die deutschen Handelsplätze über den Format-stabileren amerikanischen Server yahoo abrufen.

Felder im Aktieneditor

Für F::Q wichtig sind das Symbol und die Quelle, wobei eben das Symbol je nach Quelle verschieden sein kann.

Voller Name

Na, was wohl? Name und Symbol erscheinen später in der Spalte "Währung/Aktie" in der Kontenübersicht. Spätestens wenn man mehrere ähnliche Papiere hat, ist es sinnvoll signifikante Daten wie etwa Herausgeber, Art, ggf. Zinssatz und Endfälligkeit in den Namen einzubauen.

Symbol

Das Symbol, ist das Kürzel, unter dem das Papier bei dem entsprechenden Dienst aufgeführt ist. Vorsicht, ein und dasselbe Papier kann bei verschiedenen Anbietern also unter ganz verschiedenen Symbolen geführt werden.

  • Bei Aktien oft das Tickersymbol an der jeweiligen Börse,
  • bei in Deutschland gehandelten Papieren gewöhnlich die WKN,
  • bei Abfrage über eine Quelle, die mehrere Handelsplätze abruft und möglicherweise Notierungen in verschiedenene Währungen vorhält, wie Yahoo, ergänzt durch
  • das Währungssymbol, meist EUR, oder
  • hinter einem Punkt das Kürzel des Handelsplatzes, meist .F für Frankfurt.

Die Yahoo-Liste der Handelsplätze zeigt auch, wie verzögert die Kurse sind.

Bisweilen wird auch ein Papier an verschiedenen Börsen zu leicht unterschiedlichen Kursen gehandelt.

  • Dann kann ein Kriterium für die Auswahl des relevanten Handelsplatzes das jeweilige Handelsvolumen sein - also als signifikant wählt man den Handelsplatz mit dem über mehrere Tage beobachteten höchsten Umsatz des jeweiligen Papiers.
  • Andererseits, wenn ich aus den Kaufbelegen ersehen kann, dass mein Kreditinstitut seine Geschäfte bevorzugt an der Börse X abwickelt - und für andere Börsen eventuell Fremdgebühren in Rechnung stellt - sollte ich diese Heimatbörse bei der Auswahl bevorzugen.

Typ

Der Typ, welcher Programm-intern auch namespace - Namensraum - heißt, ist ein an US-amerikanische Verhältnisse angepasster Vorschlag, seine Papiere zu unterteilen:

  • CURRENCY für Währungen und
  • FUND für Fonds sollte klar sein,
  • EUREX: European Exchange, ist eine der größten Terminbörsen für Finanzderivate weltweit.
  • NYSE: New York Stock Exchange, "die Wallstreet".
  • NASDAQ: National Association of Securities Dealers Automated Quotations, wurde 1971 als vollelektronische Handelsplattform bekannt.
  • AMEX: hier ist dem Autor nicht klar, ob

Warum die letzten drei als Typen unterschieden werden, zumal an anderer Stelle noch der Handelsplatz ausgewählt wird, ist dem Autor nicht ganz klar, vielleicht ein historisches Relikt? Also laut [1] wurden sie halt irgendwann als Namensräume vorgegeben. Man kann sie also irgendwie zur Gruppierung, etwa nach

  • Renten (Festverzinslichen),
  • Aktien,
  • Fonds, sowie
  • Derivaten und
  • Optionen verwenden.

Tip: Die Vorgaben lassen sich übrigens mit beliebigen Texten überschreiben, die die ursprüngliche Liste dann ergänzen. Dadurch ist dann möglich, die eigenen Papiere z. B. nach der zuvor gemachten Auflistung zu gruppieren.

Vielleicht findet ja auch irgendwann mal jemand die Zeit, diese Zeichenketten übersetzbar zu machen, damit sie durch jeweils regional sinnvolle Gliederungen ersetzt werden können. ;-)

Code

Hier empfiehlt es sich, eine einheitliche Nummer wie die International Security Identification Number ISIN oder die gute alte deutsche Wertpapier-KennNummer WKN zu notieren. Die Angabe ist aber optional.

Tip: Bei deutschen Papieren erhält man aus der ISIN durch Weglassen von "DE", den darauf folgenden führenden Nullen und der letzte Prüfziffer die WKN.

In Fremdwährung notierte Papiere

Auch wenn es auf den ersten Blick nicht so aussieht - schließlich speichert GnuCash in dem Feld, in dem sonst die Währung gespeichert wird, das Symbol des Wertpapiers - ist es durchaus möglich, in Fremdwährung notierte Papiere anzulegen. Dazu gibt es sogar zwei mögliche Vorgehensweisen:

* Die erste Buchung in das Papier bestimmt die Währung.

Dazu startet man seine erste Buchung in das Papier von einem Konto welches in der Währung ist, in welcher das Papier notiert wird. Falls der Wechselkurs-Dialog - etwa bei älteren Versionen - nicht automatisch erscheint, muss man ihn von Hand aufrufen.

Abhebung US-Bank xxx [USD]
Kauf IBM y Stück a zz [USD] = xxx [USD]

Um Verwirrung zu vermeiden, sollte man bei diesem Ansatz vermeiden, nachträglich eine Buchung in Drittwährung vor der Eröffnungsbuchung einzufügen.

* Das übergeordnete Konto bestimmt die Währung, falls die erste Buchung aus dem Konto des Papiers erfolgt.

Dieser Ansatz empfiehlt sich wohl auch deshalb, weil man anhand der Kontenübersicht sieht, welche Papiere in welchen Währungen notiert werden:

Renten
EUR
Bundesschatzbrief XY
USD
Fed. Res. something
Aktien
EUR
Siemens
GBP
some british shares
 :

Hierbei muss man sich allerdings davor hüten, Wertpapierkonten nachträglich zu verschieben - sonst ist die Verwirrung komplett.

Weitere Maßnahmen

Es ist fast geschafft, ein paar kleinere Maßnahmen können einem das Leben künftig aber noch etwas erleichtern.

Zugehörige Erfolgskonten

Damit man später auch eine brauchbare Auswertung seiner Investitionen erhält, empfiehlt es sich, zu jedem Anlagekonto auch

  • je ein zugehöriges Aufwandskonto, etwa für Makler- und Depotgebühren, als auch
  • mindestens ein Ertragskonto für Zinsen, Dividenden usw. anzulegen.

Hierbei ist es meist sinnvoll, die Ertragsarten gleich soweit aufzugliedern, dass man hinterher die Zahlen für die leidige Steuererklärung auf einen Blick parat hat.

Anzeige des Wertes in der Kontenübersicht

Hat man sein erstes Wertpapier eingebucht, steht in der Kontenübersicht bei "Betrag" etwa 100 DBXD.MU, also Anzahl und Symbol. Spannender wäre aber 100 Stück * aktueller Kurs = aktueller Gesamtwert.

Rechts oben in der Kontenübersicht ist ein Pfeil nach unten. Wenn man darauf klickt, erscheint eine Liste mit den Spalten, die in der Kontenübersicht angezeigt werden. Da "Gesamt (EUR)" auswählen und es erscheint die Spalte mit den Summen in Berichtswährung.

Kontrolle im Bericht Erweitertes Portefolio

Erfahrungsgemäß kann es nicht schaden, während der erste Gehversuche auf diesem Gebiet, in einem Register-Tab den Bericht Erweitertes Portefolio zu öffnen und nach jeder eingegebenen oder geänderten Buchung zu aktualisieren. Da fallen einem dann schnell so unangenehme Dinge wie ein fehlender Wechselkurs auf, der einem ansonsten die ganze schöne Auswertung verhagelt.

Ausschüttungstermine und Endfälligkeit als terminierte Buchung

Grundsätzlich kann man ja beliebige ergänzende Angaben in den Feldern des Kontos speichern, allerdings kann es sinnvoller sei, Eigenschaften wie beispielsweise bei einer Anleihe die Endfälligkeit und den Zinstermin als Terminierte Buchungen zu hinterlegen. Am einfachsten geht das vielleicht, wenn man den Buchungssatz des Kaufes auf das Datum der Endfälligkeit kopiert, Buchungsteile vom Typ Aufwendungen des Erwerbs (Provisionen etc.) löscht, und den Rest umdreht - also die Beträge zwischen Haben- und Sollspalte verschiebt. Aber bitte darauf achten, dass die Auszahlung bei Endfälligkeit üblicherweise zum Nennwert erfolgt. Wenn alles so aussieht, wie es voraussichtlich sein wird, verwendet man diese Buchung als Vorlage für eine terminierte Buchung und löscht sie anschließend wieder.

Analog verfährt man mit den regelmäßigen Ausschüttungen z.B. Zinszahlungen. Allerdings handelt es sich hierbei dann um eine, etwa jährlich, wiederkehrende Buchung, die mit dem Datum der Endfälligkeit ebenfalls endet.

Auf diese Weise erhält man bei einem nach Datum sortierten Fenster terminierte Buchungen einen Überblick, wann man welche Zahlungszuflüsse zu erwarten hat.

Kursabruf am Beispiel der Volkswagen-Aktie

  1. Neue Datei erstellen, wähle den "Aktienhandel"-Kontenrahmen.
  2. Unter Aktiva>Aktiendepot findest Du z.B. das Überkonto "Aktie"
  3. Eine neue Aktie anlegen mit rechter Taste auf "Aktie" und "Neues Konto..."
  4. Unter "Kontobezeichnung" einen verständlichen Namen angebenm wie z.b. "Volkswagen"
  5. Kontoart "Aktienkonto"
  6. Bei Aktie/Währung (engl. Security/currency) auf "Auswählen" gehen.
  7. Dann z.B. als Typ "EUREX" wählen.
  8. Neu
    1. Voller Name, am besten so wie bei Kontobezeichnung oder länger.
    2. Symbol/Abkürzung - Hier z.B. zu

gehen und Aktie suchen. (In unserem konkreten Fall wäre das "VOW.DE")

    1. "Börsenkurse online abrufen" auswählen
    2. Hier z.B. "Yahoo" wählen. dann drei mal die Dialoge bestätigen mit OK
  1. Bei Werkzeuge auf "Preis-Editor" gehen
    1. "Hinzufügen" - und Auswählen was wir vorhin eingegeben haben. Bestätigen.
  2. Auf "Kurse abrufen" klicken. Wenn keien Fehlermeldung kommt ist das gut. Dreieck aufklappen mit Links-Klick bei "EUREX", dann "VOW.DE". Man sieht zwei Einträge - einen für EURO, einen für USD. (bitte hier weitere Erläuterungen ergänzen)

Automatisierter Kursabruf mittels cron

Mithilfe des Befehls

gnucash --add-price-quotes $HOME/<GnuCash-Dateiname>

können die Kurse aktualisiert werden, ohne das GUI zu laden.

Das lässt sich auch automatisieren, indem man (unter Linux) dem cron-Daemon die Arbeit überlässt (siehe cron in wikipedia oder linuxwiki). Wollte man also jeden Freitag um 16:00 seine Kursdatenbank aktualisieren, so wäre die Zeile

0 16 * * 5 gnucash --add-price-quotes $HOME/<GnuCash-Dateiname> > /dev/null 2>&1

in die persönliche crontab einzufügen.

Die 16:00 sollte man natürlich an Börsenschluss + max(Verzögerung der gewählten Quellen) anpassen. Falls man nicht beachtet, dass insbesondere Fondskurse relativ spät festgestellt werden, erhält man stattdessen den Schlusskurs des Vortags.

Da bei Fonds üblicherweise der Nettowert, also die Summe aller Investments zu Schlusskursen, nachbörslich ermittelt wird, kann das schon ein paar Stunden, also etwa bis 20 Uhr, dauern.

Weitere Tips für Devisenbuchungen

Grundsätzliches

Grundsätzlich verarbeitet GnuCash eine Buchung in der Währung des Kontos, in dem man die Buchung beginnt. Falls man direkt im Journal bucht, was nicht empfohlen wird, ist das die eingestellte Standardwährung.

Rundungsfehler minimieren

Zur Zeit (2.9/3.x) werden Buchungen in der Währung des Kontos, aus dem heraus die Buchung begonnen wurde, berechnet. Das hat den unschönen Effekt, dass diese auch die kleinste Einheit vorgibt. Beginnt man etwa eine Transaktion in EUR, deren weitere Buchungsteile auf IDR lauten, dann ist die kleinste Einheit bei einem angenommenen Kurs von 1 EUR = 15 000 IDR ein Euro-Cent = 150 IDR.

Es werden also alle IDR-Beträge zu Vielfachen von 150 gerundet, der Rundungsfehler von einem halben Cent summiert sich schlimmstenfalls noch zu einem erklecklichen Betrag und auf dem IDR-Konto stehen Zahlen, die mit den ursprünglich eingegeben Werten wenig zu tun haben. Beginnt man die Buchung aber im IDR-Konto, kann man seine Rechnungen seit 2.7? auf 1/100 IDR genau erfassen.

Daher empfiehlt es sich, Devisenbuchungen immer im Konto mit dem niedrigeren Wert der kleinsten Währungseinheit - "Pfennige" - zu beginnen.

Zwei Standardwährungs-Konten in einer Drittwährung bebuchen

Bug 482186 erwähnt einen schönen Trick: Der Berichterstatter startet seine Buchung aus einem Dummykonto in Drittwährung heraus, welches er aber schließlich mit 0 CHF bebucht.

Sonstige Informationen, Speicherorte usw.

Online-Kursabfrage für ein Papier beenden

Wenn ein Papier seine Endfälligkeit erreicht oder es einen, da man es nicht mehr hält, nicht mehr weiter interessiert, sollte man die Online-Kursabfrage dafür abschalten.

Solange Papiere noch bei "Börsenkurse online abrufen" ein Häkchen haben, wird die Datenbank des Preiseditors (zu finden unter "Werkzeuge") mit jedem Klick auf "Kurse abrufen" im Preiseditor diese auch abrufen und in der Datenbank halten. Um das zu vermeiden, muss man die das Häkchen bei "Börsenkurse online abrufen" im Wertpapier-Editor wegmachen (auch unter "Werkzeuge" zu finden) oder

  1. darauf basierende Konten in der Kontenübersicht und
  2. die commodities im Aktieneditor und
  3. die Kurse im Preiseditor löschen.

Speicherorte

In der unkomprimierten Gnucash-Datei (in Bearbeiten, Einstellungen, Allgemein das Häkchen bei "Datei komprimieren" entfernen) findet man

- die Definitionen von Wertpapieren und Währungen jeweils zwischen <gnc:commodity version="2.0.0"> und </gnc:commodity>

- die Kurse jeweils zwischen <gnc:pricedb version="1"> und </gnc:pricedb>

Fehlersuche im Zusammenhang mit Finance::Quote

Stufe 1: gnc-fq-dump

Wenn GnuCash meldet, dass es einen Kurs nicht aktualisieren kann, ist es meist schneller, seine Angaben mit

gnc-fq-dump [-v] <Quelle> <Kürzel1> [<Kürzel2> ...]

zu überprüfen als in GnuCash immer wieder eine Einstellung zu ändern und alle Kurse abzurufen. Weiterhin sieht man bei dieser Methode besser, wo der Fehler liegt. Da sie auch unvollständige Ergebnisse liefert, sieht man dann beispielsweise, ob Yahoo mal wieder das Format geändert hat oder das Symbol wirklich unbekannt ist.

Stufe 2: gnc-fq-helper

Leider gibt es auch Fehler, die sich bei der Verwendung von gnc-fq-dump vor den Augen des Benutzers verstecken, wie etwa ein angehängtes Leerzeichen. Falls also das Ergebnis von gnc-fq-dump sauber aussieht, GnuCash es aber "partout nicht fressen will", sollte man den für den Laien etwas gewöhnungsbedürftigen gnc-fq-helper verwenden. Am Beispiel der berühmten Unilever-Anleihe, die im September 2008 die Mailingliste unsicher machte, sieht der Aufruf und das Ergebnis dann so aus:

 echo '(yahoo_europe "A0GFY7.SG")' | gnc-fq-helper

(("A0GFY7.SG" (symbol . "A0GFY7.SG") (gnc:time-no-zone . "2008-09-26 16:58:00") (last . 89.50) (currency . "EUR ")))

Wer sieht den Fehler? Lösung

An Finance::Quote basteln

Wer nun neugierig geworden ist, wie Finance::Quote im einzelnen funktioniert, kann sich gerne die Module anschauen. Schließlich ist Perl eine Skript-Sprache, die man mit einem normalen Editor bearbeiten kann und nicht compilieren muß.

Bei opensuse liegen sie unter

/usr/lib/perl5/

. Die nächste Verzeichnisebene unterscheidet zwischen der mitgelieferten Version vendor_perl und einer eventuell mit gnc-fq-update oder cpan heruntergeladenen Version site_perl. Die nächste Ebene bezeichnet die Perl-Version, bevor man endlich in das Verzeichnis Finance kommt.

Bevor man sich die Mühe macht, Änderungen vorzunehmen und an das Projekt einzuschicken, ist es vielleicht sinnvoll, ein wenig auf der Projektseite zu stöbern, um zu sehen, ob dort bereits ein entsprechender Patch herumliegt und welche Arten von Änderungen, nicht akzeptiert werden, weil sie etwa einen falschen Ansatz verfolgen.

Ebenso kann es sinnvoll sein, den Autor des Moduls, an dem man Änderungen vornehmen möchte, zu kontaktieren, um sich doppelte Arbeit zu ersparen. Selbiger steht meist irgendwo in den Kommentaren des jeweiligen Moduls.


Zurück zur Hauptseite