# Einrichten der Kursabfrage

Wenn Sie mehr als ein paar Devisen und Wertpapiere besitzen, werden Sie es vielleicht bald leid sein, die Kurse ständig per Hand aktualisieren zu müssen. &app; bietet Ihnen die Möglichkeit, automatisch den aktuellsten Kurs für Ihre Devisen und Wertpapiere über das Internet herunterzuladen. Hierfür wird das &app-perl;-Modul &app-fq; verwendet.

## Die Vorraussetzungen für eine Online-Kursabfrage mit &app-fq; sind

- ein &app-perl; Interpreter und

- das &app-perl;-Module &app-fq; mit allen Abhängigkeiten.

- das &app-perl;-Module JSON::Parse um die Ausgabe von &app-fq; zu steuern.

Wenn Sie bei der Durchführung der hier beschriebenen Schritte nicht mehr weiterwissen, können Sie auf den unter more_help genannten Kanäle viele hilfsbereiten Anwender erreichen.

Sie können diesen Schritt auch weglassen und Ihre Kurse weiterhin manuell aktualisieren.

## Installieren von &app-perl;

Abhängig von dem verwendeten Betriebssystem ist der Aufwand für die Installation von &app-perl; gering und wird in diesem Abschnitt beschrieben.

Um zu überprüfen ob &app-perl; bereits auf Ihrem System installiert ist, rufen Sie den Befehl `perl -v` im Terminal auf.

    $ perl -v
    This is perl 5, version 30, subversion 0 (v5.30.0) built for x86_64-linux-gnu-thread-multi

Wird Ihnen die Versionsnummer des &app-perl;-Interpreters angezeigt, dann überspringen Sie die nächsten Angaben und fahren Sie stattdessen mit fq-install fort.

## Unter &lin;

1. Bei den meisten Systemen ist &app-perl; wahrscheinlich bereits installiert. Wird mit dem vorherigen Befehl keine Version angezeigt wird, dann verwenden Sie am einfachsten die Paketverwaltung Ihres Systems zur Installation.

2. Verwenden Sie das &app; &flatpak; Paket sind &app-perl; und &app-fq; bereits funktionsfähig installiert.

## Unter &mac;

1. &app-perl; ist unter &mac; normalerweise schon eingerichtet.

## Unter &win;

1. Unter &win; führen Sie das Programm &mc.winOS.inst-fq; aus. Dies wird Strawberry Perl installieren.

2. Zur Ausführung benötigen Sie Administratorenrechte, die im Dialog abgefragt werden. Die Installation kann mehr als 15 Minuten dauern.

3. Werden während der Installation die Fehlermeldung `No such file or directory` oder `permission denied` angezeigt, dann kann es helfen das Antivirenprogramm vorübergehend zu deaktiviern.

Es empfiehlt sich anschließend, das Verzeichnis in dem &app; installiert ist, unter &win; z.B. ``C:\Programme (x86)\gnucash\bin``, zu Ihrer `PATH`-Umgebungsvariable hinzuzufügen. Auf diese Weise ist es für Sie einfacher, bei Bedarf die fq-command-line zu nutzen. Hierzu informieren Sie sich bitte in den Unterlagen zu Ihrem Betriebssystem.

## Installieren von &app-fq;

Um festzustellen, ob das &app-perl;-Modul &app-fq; bereits auf Ihrem System verfügbar ist, geben Sie `perldoc Finance::Quote` in einem Terminalfenster ein. Wird Ihnen jetzt eine Dokumentation in dieser Form

    $ perldoc Finance::Quote
    NAME
        Finance::Quote - Get stock and mutual fund quotes from various exchanges

    SYNOPSIS
        [...]

angezeigt, dann ist &app-fq; installiert und Sie können, wie in fq-auto-quote beschrieben, den automatisierten Kursabruf konfigurieren. Wenn nicht, dann gibt Ihnen dieser Abschnitt eine Anleitung zur Installation.

Die Installation von &app-fq; unterscheidet sich von einem Betriebssystem zum anderen. Für die verschiedenen unterstützten Systeme, können Sie die folgenden Anweisungen befolgen:

## Unter &lin;

1. Beenden Sie &app;.

2. Aktualisieren Sie &app-fq; mit `sudo gnc-fq-update`. Der Befehl kann auch für eine Neuinstallation verwendet werden. Die richtige Syntax ist von der jeweiligen Distribution abhängig.

3. Führen Sie den Befehl `gnucash-cli --quotes info` aus, um zu überprüfen, ob das Programm bereits in einem Verzeichnis liegt, welches in der Umgebungsvariable `PATH` eingetragen ist.

   Wenn Sie die von Ihrer Distribution bereitgestellten &app; Pakete installiert haben, sollte &app-cli; bereits in Ihrem `PATH` sein. Die &app-fq; Version, die von Ihrem Paketmanager bereitgestellt wird, kann unter &app-fq;-versions nachgelesen werden oder mit dem info-Befehl der Softwareverwaltung überprüft werden.

   Ist &app-fq; richtig installiert ist, dann werden die Versionsnummer sowie die von &app-fq; verwendbaren Quellen für eine Kursabfrage aufgelistet. Bei Problemen mit der Installation wird eventuell eine Lösung vorgeschlagen.

## Unter &mac;

Sie müssen mit einer Benutzerkennung angemeldet sein, die den Mac administrieren kann, um dieses Vorgehen anzuwenden.

1. Beenden Sie &app;.

2. Installieren Sie &app-xcode;

   Sie können &app-xcode; aus dem App Store installieren oder Sie installieren die viel kleineren Xcode-Befehlszeilentools, indem Sie `sudo xcode-select --install` in einer Terminal.app Eingabeaufforderung ausführen.

   , falls noch nicht geschehen. Es enthält Entwicklungswerkzeuge, die von CPAN benötigt werden, um die benötigten &app-fq; Module zu bauen und zu testen.

3. Öffnen Sie ein Finder-Fenster, wählen &gm.macOS.appl; in der Seitenleiste, klicken doppelt auf &gmi.macOS.appl.util; in der Dateifläche und öffnen mit Doppelkick eine Terminal-Anwendung.

4. In der Termianlanwendung tragen Sie `sudo /Applications/Gnucash.app/Contents/Resources/bin/gnc-fq-update` ein. Das Skript stellt viele Fragen, die alle mit den Vorgabewerten beantwortet werden können.

5. Geben Sie `exit` ein oder Betätigen Sie &kc.ctrl;D um die Shell zu beenden, gefolgt von &kc.cmd; Q damit die Terminalanwendung geschlossen wird.

## Unter &win;

1. Beenden Sie &app;.

2. Führen Sie &mc.winOS.inst-fq; aus. Dies ist ein kleines Hilfsprogramm, das &app-fq; für Sie installiert.

## Verwendung von &app-cli; für Tests und Automatisierung

&app; enthält die Befehlszeilenanwendung &app-cli;, welche mit der Option `--quotes` in einer Terminalsitzung verwendet werden kann, um die Version und die unterstützten Quellmodule von &app-fq; 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.

In &app; 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.

### Anzeige der &app-fq; Version und der unterstützten Quellen

Die Nutzung der Option `--quotes info` liefert die Versionsnummer des derzeit installierten &app-fq; 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 &app-fq; Version ist &app-fq-vers;. 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 &app-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 &app-fq; nicht richtig installiert und kann so nicht für den Kursabruf mit &app; genutzt werden. Bitte installieren Sie &app-fq; entsprechend der Anleitung unter fq-install.

### Abfrage von Kursen in einem Terminalfenster

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 tool-ge-Symbol, welches Sie für Ihr Wertpapier zum Online-Kursabruf verwenden möchten, bei der gewünschten tool-ge-TypeQuoteSource bekannt ist.

Sie können `gnucash-cli --quotes dump` verwenden, um Kursquellen und Symbole einzeln zu testen, wenn &app; einen Fehler beim Abrufen von Kursen meldet. Der Befehl zeigt die Felder an, die von &app; genutzt werden. Verwenden Sie die Optionen `gnucash-cli --verbose --quotes dump`, um alle Informationen zu sehen, die &app-fq; 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.

  Seit &app-fq; 1.41 ist die Standardquelle für Währungen Alpha Vantage. Lesen Sie auch die Hinweise dazu in gnc-tbl-fq-currency-source.

  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 &app; benötigt, ergänzt mit Kommentaren, die angeben, ob die Felder empfohlen oder erforderlich sind; damit können Sie herausfinden, ob &app; 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 &app-fq; zurückgegeben. Dies kann nützlich sein, um Probleme mit einem &app-fq; 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

    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 &mc.ed.pref; prefs-online-quotes gespeichert ist.

Um zu testen, ob &app-fq; für Währungen innerhalb von &app; 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 &gmi.ac.ed-ex;.

4. Klicken Sie auf die Schaltfläche Wechselkurs abrufen im trans-win-enter.

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

### Automatisierte Aktualisierung von Kursen mit &app-cli;

Mit dem Kommando `gnucash-cli --quotes get &user-datafile;`

Dies ersetzt den Befehl `&app; --add-price-quotes &user-datafile;` in &app; Version 4.x und früher.

können Sie die aktuellen Kurse Ihrer Devisen und Wertpapiere abrufen und direkt in ihre &app;-Datendatei schreiben ohne die Benutzeroberfläche zu starten. Somit ist eine automatische, regelmäßige Aktualisierung der Kursdatenbank möglich.

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

Die angegebene Datei &user-datafile; ist abhängig von dem Namen und dem Speicherort Ihrer Datendatei. Dies lässt sich anhand des Namens feststellen, der im oberen Rahmen des &app; Fensters vor dem - angezeigt wird.

Der Dateiname ist auch in der Liste der zuletzt geöffneten Dateien im &gm.file;-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 &app-cli; bei einem Scheduler (Zeitplaner) eintragen, um die Onlinekurse automatisch und regelmäßig zu erhalten. Die Methode hängt von Ihrem Betriebssystem ab.

#### Automatischer Kursabruf jeden Freitag um 16:00 Uhr

#### Unter &lin; und &mac;

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 &user-datafile; > /dev/null 2>&1

   Läuft unter &lin; 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 &user-datafile; > /dev/null 2>&1

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

#### Unter &win;

Anlegen des Kursabrufs per `gnucash-cli` mit der Aufgabenplanung.

1. Wählen Sie &mc.winOS.sys.tasks;.

2. Klicken Sie auf &gmi.winOS.sys.task;.

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 tool-price.

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