11.3. Verwendung von gnucash-cli für Tests und Automatisierung

Zusammenfassung

GnuCash enthält die Befehlszeilenanwendung gnucash-cli, welche mit der Option --quotes in einer Terminalsitzung verwendet werden kann, um die Version und die unterstützten Quellmodule von Finance::Quote zu prüfen, Kurse oder Wechselkurse für ausgewählte Wertpapiere oder Währungen anzuzeigen und alle Kurse in einem Buch zu aktualisieren, ohne hierfür die grafische Benutzeroberfläche zu starten.

Anmerkung

In GnuCash Version 4.x und früher wurden die separaten Perl-Programme gnc-fq-check an Stelle von gnucash-cli --quote info und gnc-fq-dump anstatt gnucash-cli --quote dump verwendet.

11.3.1. Anzeige der Finance::Quote Version und der unterstützten Quellen

Zusammenfassung

Die Nutzung der Option --quotes info liefert die Versionsnummer des derzeit installierten Finance::Quote Moduls sowie eine Liste der verfügbaren Quellen. Es informiert Sie auch, wenn es ein Problem mit Ihrer Installation gibt und nennt die Gründe dafür.

Die neueste Finance::Quote Version ist 1.59. Entsprechend der Aktualität Ihrer Installation kann sich die nachfolgende Auflistung der Quellenmodule unterscheiden.

Die Eingabe von

gnucash-cli { -Q | --quotes } info

im Terminal erzeugt die folgende Ausgabe:

$ gnucash-cli --quotes info
Finance::Quote Version 1.57 wurde gefunden.
Finance::Quote Quellen:
aex          alphavantage              amfiindia    asegr        asx
aufunds      australia    bamosz       bet          bloomberg    bourso
bse          bseindia     bvb          canada       canadamutual
comdirect    cse          deka         dutch        dwsfunds     europe
fetch_live_currencies     fidelity     fidelity_direct
finanzpartner             fondsweb     fool         france       ftfunds
fundata      fundlibrary  goldmoney    googleweb    greece       hu
hufund       hungary      hustock      iexcloud     india        indiamutual
known_currencies          marketwatch  morningstarau
morningstarch             morningstarjp             morningstaruk
mstaruk      nasdaq       nseindia     nyse         nzx          onvista
oslobors     romania      seb_funds    sinvestor    six
tesouro_direto            tiaacref     tmx          tradegate    tradeville
treasurydirect            troweprice   troweprice_direct         tsp
tsx          twelvedata   ukfunds      unionfunds   usa          xetra
yahoo_json   yahooweb     za

Wenn es ein Problem mit Ihrer Installation gibt, werden Sie darauf hingeweisen. In dem nachfolgend aufgeführtem Beispiel wird auf Probleme mit den Perl-Modulen Finance::Quote und JSON::Parse hingewiesen:

$ gnucash-cli --quotes info
Failed to initialize Finance::Quote: missing_modules Finance::Quote JSON::Parse

In diesem Fall ist Finance::Quote nicht richtig installiert und kann so nicht für den Kursabruf mit GnuCash genutzt werden. Bitte installieren Sie Finance::Quote entsprechend der Anleitung unter Abschnitt 11.2, „Installieren von Finance::Quote.

11.3.2. Abfrage von Kursen in einem Terminalfenster

Zusammenfassung

Die Option --quotes dump liefert Kursdaten für eine Kursquelle und eine Liste von Symbolen in einem Format, das für Menschen leicht zu lesen ist. Dies ist nützlich, um zu überprüfen, ob eine bestimmte Online-Kursquelle erreichbar ist und Daten liefert.

Weiterhin können Sie überprüfen, ob das Symbol/Abkürzung, welches Sie für Ihr Wertpapier zum Online-Kursabruf verwenden möchten, bei der gewünschten Art der Kursabruf-Quelle bekannt ist.

Tipp

Sie können gnucash-cli --quotes dump verwenden, um Kursquellen und Symbole einzeln zu testen, wenn GnuCash einen Fehler beim Abrufen von Kursen meldet. Der Befehl zeigt die Felder an, die von GnuCash genutzt werden. Verwenden Sie die Optionen gnucash-cli --verbose --quotes dump, um alle Informationen zu sehen, die Finance::Quote von der Kursquelle erhält.

Um einen Kurs für eine oder mehrere Aktien oder den Wechselkurs für eine oder mehrere Währungen anzuzeigen, verwenden Sie den Befehl wie folgt:

gnucash-cli { -Q | --quotes } dump [ -V | --verbose ] Quelle Symbol ...

Es bietet eine Ausgabeform für Devisenkurse und zwei für Aktien und Wertpapiere.

Währungen

Für den Abruf von Devisenkursen wird die Quelle currency verwendet, welche mindestens zwei ISO 4217 Währungscodes erfordern; die Wechselkurse werden in der ersten Währung angegeben. [22] Zum Beispiel:

$ gnucash-cli --quotes dump currency USD GBP EUR
1 GBP = 1.27951 USD

1 EUR = 1.09823 USD

Wertpapiere

Zum Abruf von Kursen Ihrer Wertpapiere ist die abzufragende Kursquelle sowie das gewünschte Symbol anzugeben.

  • Eine Kurzform, die nur die Felder anzeigt, die GnuCash benötigt, ergänzt mit Kommentaren, die angeben, ob die Felder empfohlen oder erforderlich sind; damit können Sie herausfinden, ob GnuCash in der Lage sein wird die Kursangaben zu verwenden, um die Kursdatenbank Ihres Buches zu aktualisieren.

    $ gnucash-cli --quotes dump yahooweb AAPL
        Symbol: AAPL            <=== erforderlich
         Datum: 07/28/2023      <=== empfohlen
      Währung: USD             <=== erforderlich
       Letzter: 193.22          <=\ 
           NAV:                 <=== Eins von diesen
         Preis:                 <=/ 
    

  • Mit der Option --verbose wird eine längere Ausgabe mit allen Datenfeldern von Finance::Quote zurückgegeben. Dies kann nützlich sein, um Probleme mit einem Finance::Quote Quellmodul zu beheben.

    $ ALPHAVANTAGE_API_KEY=123456789 gnucash-cli --verbose --quotes dump alphavantage INTC
    INTC:
            date => 07/27/2023
           close => 34.3600
            open => 34.8200
    currency_set_by_fq => 1
         success => 1
         isodate => 2023-07-27
            last => 34.5500
            high => 35.0300
        currency => USD
          symbol => INTC
          volume => 58890821
             low => 34.1100
        p_change => 0.5530
             net => 0.1900
          method => alphavantage
    

    Anmerkung

    Beachten Sie, dass wir in diesem Fall als Quelle alphavantage verwendet und den ALPHAVANTAGE_API_KEY in der Befehlszeile angegeben haben. Das ist nicht notwendig, wenn der Schlüssel bereits in BearbeitenEinstellungen Abschnitt 10.1.8, „Online Kurse“ gespeichert ist.

Um zu testen, ob Finance::Quote für Währungen innerhalb von GnuCash funktioniert, gehen Sie wie folgt vor:

  1. erstellen Sie eine Buchung mit dem gewünschtem Handelsgut in der Buchwährung,

  2. machen einen Rechtsklick darauf,

  3. wählen Sie im Kontextmenü die Option Wechselkurs bearbeiten….

  4. Klicken Sie auf die Schaltfläche Wechselkurs abrufen im Buchen Dialog.

Sind die Kursquelle sowie das Symbol richtig eingestellt, wird der aktuelle Kurs in das Feld für den Wechselkurs eingetragen.

11.3.3. Automatisierte Aktualisierung von Kursen mit gnucash-cli

Mit dem Kommando gnucash-cli --quotes get ${HOME}/gnucash-filename [23] können Sie die aktuellen Kurse Ihrer Devisen und Wertpapiere abrufen und direkt in ihre GnuCash-Datendatei schreiben ohne die Benutzeroberfläche zu starten. Somit ist eine automatische, regelmäßige Aktualisierung der Kursdatenbank möglich.

Anmerkung

Der Befehl schlägt fehl, wenn kein exclusiver Zugriff auf die Datendatei möglich ist, z.B. weil die Datendatei in einer anderen GnuCash Instanz geöffnet ist oder die letzte Sitzung für die Datei abgestürzt ist.

Die angegebene Datei ${HOME}/gnucash-filename ist abhängig von dem Namen und dem Speicherort Ihrer Datendatei. Dies lässt sich anhand des Namens feststellen, der im oberen Rahmen des GnuCash Fensters vor dem - angezeigt wird.

Tipp

Der Dateiname ist auch in der Liste der zuletzt geöffneten Dateien im Datei-Menü zu finden. Wenn Sie den Mauszeiger über dem Menüeintrag mit der Nummer 1 in der Liste der zuletzt geöffneten Dateien platzieren, wird in der Statusleiste die vollständige Dateibezeichnung angezeigt.

Sie müssen den Befehl gnucash-cli bei einem Scheduler (Zeitplaner) eintragen, um die Onlinekurse automatisch und regelmäßig zu erhalten. Die Methode hängt von Ihrem Betriebssystem ab.

Beispiel 11.1. Automatischer Kursabruf jeden Freitag um 16:00 Uhr

Prozedur 11.7. Unter Linux und macOS

Eintragen des Befehls zum Kursabruf per gnucash-cli mittels cron.

  1. Führen Sie das Kommando crontab -e aus.

  2. Fügen Sie die folgende Zeile in Ihre crontab ein:

    0 16 * * 5 gnucash-cli --quotes get ${HOME}/gnucash-filename > /dev/null 2>&1
    

    Wichtig

    Läuft unter Linux auf Ihrem Rechner zu dem Zeitpunkt des Kursabrufs keine graphische Benutzeroberfläche, die bereits den dbus gestartet hat, so müssen Sie den Eintrag stattdessen wie folgt vornehmen:

    0 16 * * 5 env `dbus-launch` sh -c 'trap "kill $DBUS_SESSION_BUS_PID" EXIT;
    gnucash-cli --quotes get ${HOME}/gnucash-filename > /dev/null 2>&1
    

    (Den Zeilenumbruch nicht in die crontab übernehmen, der wurde hier nur zum Zwecke der Lesbarkeit eingefügt.)

Prozedur 11.8. Unter Windows

Anlegen des Kursabrufs per gnucash-cli mit der Aufgabenplanung.

  1. Wählen Sie StartSystemsteuerungAufgabenplanung.

  2. Klicken Sie auf Aufgabe erstellen….

  3. Geben Sie die entsprechenden Angaben im Fenster Aufgabe erstellen ein.

Passen Sie die Zeit an den Börsenschluss an und bedenken Sie, dass bei Fondskursen das Netto-Anlagevermögen (NAV) deutlich nach Börsenschluss ermittlet wird. Eine Beschreibung zu den Typen finden Sie unter Abschnitt 8.6, „Kurs-Datenbank“.


Einige Benutzer haben im GnuCash Wiki unter Aktienhandel und ausführlicher im englischsprachigen Wiki Online Quotes Page on GnuCash Wiki ihre Erfahrungen und weiter Ergänzungen zusammengestellt.



[22] Seit Finance::Quote 1.41 ist die Standardquelle für Währungen Alpha Vantage. Lesen Sie auch die Hinweise dazu in Tabelle A.1, „Währungs-Quelle für Finance::Quote“.

[23] Dies ersetzt den Befehl GnuCash --add-price-quotes ${HOME}/gnucash-filename in GnuCash Version 4.x und früher.