Module Shares und ShareMaster: Unterschied zwischen den Versionen
Andies (Diskussion | Beiträge) K (→Einrichtung) |
|||
(9 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 22: | Zeile 22: | ||
* Angabe einer Kategorie (z.B. "Rohstoff" oder "Bio") für jedes Wertpapier. | * Angabe einer Kategorie (z.B. "Rohstoff" oder "Bio") für jedes Wertpapier. | ||
* deutliche Vereinfachung der Reading-Namen und Konfigurierbarkeit der angezeigten Werte. | * deutliche Vereinfachung der Reading-Namen und Konfigurierbarkeit der angezeigten Werte. | ||
* Alternative Symbole für jedes Wertpapier, z.B. Yahoo-Symbol|ISIN|WKN zum schnellen Wechsel des Datenanbieters | |||
====Einrichtung==== | ====Einrichtung==== | ||
Das Modul benötigt das Perl-Modul Finance::Quote, das mit dem | Das Modul benötigt das Perl-Modul Finance::Quote, das am Sichersten mit dem Kommandozeilenbefehl | ||
cpan Finance::Quote | |||
installiert wird. Da hierbei viele zusätzliche Perl-Module geholt und getestet werden, kann das schon eine ganze Weile dauern! | |||
Auf Linux-Systemen kann man das ggf. durch | |||
apt install libfinance-quote-perl | apt install libfinance-quote-perl | ||
abkürzen. Dabei kann es aber zu Fehlermeldungen beim Aufruf kommen, weil dieses Linux-Paket offenbar nicht ganz vollständig ist. | |||
Die Definition des Depots ist | Die Definition des Depots ist sehr einfach und benötigt keine Parameter | ||
define <Depotname> Shares | define <Depotname> Shares | ||
Das Attribut ''stocks'' enthält eine (gerne mehrzeilige) Liste der Wertpapiere im Format | Das Attribut ''stocks'' enthält eine (gerne mehrzeilige) Liste der Wertpapiere im Format | ||
<Symbol>:<Anzahl>:<Einstandswert>:<Kategorie> | <Symbol>:<Anzahl>:<Einstandswert>:<Kategorie> | ||
Wichtig ist, dass der | * Wichtig ist, dass der Einstandswert für jedes Wertpapier ''in Depotwährung'' angegeben wird. | ||
* Zum Thema der alternativen Symbolen siehe unten. | |||
===ShareMaster.pm=== | ===ShareMaster.pm=== | ||
Zeile 45: | Zeile 46: | ||
Die Definition erhält als Parameter alle Unterdepots | Die Definition erhält als Parameter alle Unterdepots | ||
define <MasterDepotname> ShareMaster <Unterdepot1> [<Unterdepot2>]* | define <MasterDepotname> ShareMaster <Unterdepot1> [<Unterdepot2>]* | ||
==Wichtige Attribute== | |||
Für das Modul 95_Shares.pm | |||
*'''shareCurrency''' ist die Anzeigewährung für die Wertpapiere. Format: <code><ISO-Code for currency>[:<Currency Symbol>]</code>, Default: EUR:€ | |||
*'''depotCurrency''' ist die Anzeigewährung für den Gesamtwert dieses Depots, auch die Einstandswerte jedes Papier müssen in dieser Währung angegeben werden. Format: <code><ISO-Code for currency>[:<Currency Symbol>]</code>, Default: EUR:€ | |||
*'''queryTimeout''' ist der Timeout für Abfragen, Default: 120 (Sekunden) | |||
*'''pollInterval''' ist der Zeitabstand für Abfragen, Default: 300 (Sekunden) | |||
*'''defaultSource''' ist eine '|'-separierte Liste von Datenanbietern. Siehe dazu den Abschnitt über alternative Symbole. Default: yahoo_json (Einzelquelle), gültige Werte erhält man mit dem Befehl | |||
get <Depotname> sources | |||
*'''sources''' ist eine kommagetrennte Liste im Format <code><SymbolA>:<QuelleA>[,<SymbolX>:<QuelleX>]*</code>. Damit kann man spezielle Datenquellen für jedes einzelne Symbol festlegen. Alle Symbole, die darin nicht aufgeführt sind, werden von der jeweiligen Default-Source geholt. | |||
*'''sourcesLinks''' ist eine kommagetrennte Liste im Format <code><QuelleA>:<StringA>[,<QuelleX>:<StringX>]*</code>. Der String ist eine URL, die den Platzhalter ''$SYMBOL'' enthalten kann. Dieser Platzhalter wird für jedes Wertpapier durch das verwendete Symbol ersetzt. Beispiel: | |||
yahoo_json:http://de.finance.yahoo.com/quote/$SYMBOL | |||
*'''arrows''' ist eine kommagetrennte Liste von Pfeilsymbolen im HTML-Format, die Änderungen im Kurswert symbolisieren, mit den Grenzen >1%,1%,0%,-1%,<-1% Default: "🢁,🢅,🢂,🢆,🢃" | |||
*'''colors''' ist eine kommagetrennte Liste von Farbspezifikationen im HTML-Format, um Änderungen in den Kurswerten darzustellen, mit den Grenzen >1%,1%,0%,-1%,<-1% Default: "green,seagreen,black,orangered,red" | |||
*'''headercolor''' ist eine Farbspezifikation im HTML-Format zur Hervorhebung der Kopfzeile in einer Depotabelle. Default #aaaaff; | |||
Für das Modul 95_ShareMaster.pm | |||
*'''depotCurrency''' ist die Anzeigewährung für den Gesamtwert dieses Depots, auch die Einstandswerte jedes Papier müssen in dieser Währung angegeben werden. Format: <code><ISO-Code for currency>[:<Currency Symbol>]</code>, Default: EUR:€ | |||
*'''categories''' ist eine kommagetrennte Liste der Kategorien für dieses Depot, die in der Zusammenfassung dargestellt werden. Beispiel: | |||
automotive,mobility,bio,chemistry,commodity,energy,finance,h2,health,pharma,realestate,sales,software,tech | |||
Für die in diesem Beispiel verwendeten Kategorien gibt es im Modul eine deutsche Übersetzung. | |||
*'''pollInterval''' ist der Zeitabstand für Abfragen, Default: 300 (Sekunden) | |||
==Alternative Symbole== | |||
Viele der Datenanbieter, z.B. Yahoo, erschweren in unregelmäßigen und nicht vorhersehbaren Abständen den Zugang. Das ist verständlich, weil sie durch den häufigen Zugriff Kosten haben - aber dennoch ärgerlich, weil man plötzlich von einem auf den anderen Tag keine Kursdaten mehr bekommt. | |||
Aus diesem Grund bietet das Modul 95_Shares.pm die Möglichkeit, für jedes Wertpapier mehrere Symbole anzugeben. Die Syntax für jede Zeile des Attributes ''stocks'' ist in diesem Fall | |||
<Symbol0>[|<SymbolN, N=1...>]*:<Anzahl>:<Einstandswert>:<Kategorie>, | |||
Beispiel: | |||
NADQ.DE|LU2197908721:10:500:tech, | |||
Das erste ist in diesem Beispiel das Yahoo-Symbol für einen beliebten NASDAQ-ETF, das zweite die ISIN. Die Anzahl der alternativen Symbole ist nicht begrenzt. | |||
Desweiteren gibt es für das Modul das Attribut ''defaultSource''. Dessen Syntax ist | |||
<Quelle0>[|<QuelleN, N=1...>]* | |||
Beispiel: | |||
yahoo_json|xetra | |||
Die dritte Komponente dieses Systems ist das Attribut ''altSymbol''. Und damit sollte schon klar sein, wie das läuft. | |||
* Wenn ''altSymbol'' den Wert 0 hat, wird für jedes Position mit dem Symbol0 standardmäßig bei Quelle0 nachgeschaut | |||
* Wenn ''altSymbol'' den Wert 1 hat, wird für jedes Position mit dem Symbol1 standardmäßig bei Quelle1 nachgeschaut | |||
* etc. | |||
Sollte es also vorkommen, dass Yahoo den Zugriff mal wieder erschwert, kann man mit der einfachen Änderung | |||
attr <Depotname> altSymbol 1 | |||
auf Xetra als Quelle umschalten, ohne den gesamten Depotbestand neu einzugeben. | |||
Selbstverständlich wird in der Anzeige des Depots nur das jeweils verwendete Symbol dargestellt - die komplexere Darstellung beschränkt sich auf das ''stocks''-Attribut. | |||
==Beispiele== | ==Beispiele== |
Aktuelle Version vom 24. April 2024, 15:38 Uhr
Shares | |
---|---|
Zweck / Funktion | |
Das Modul Shares dient zur Verwaltung eines Wertpapierdepots. | |
Allgemein | |
Typ | Hilfsmodul |
Details | |
Dokumentation | EN / DE |
Support (Forum) | Unterstuetzende Dienste |
Modulname | 95_Shares.pm |
Ersteller | Prof. Dr. Peter A. Henning |
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! |
ShareMaster | |
---|---|
Zweck / Funktion | |
Das Modul ShareMaster fasst die Daten eines oder mehrer Wertpapierdepots in einer komfortablen Anzeige zusammen. | |
Allgemein | |
Typ | Hilfsmodul |
Details | |
Dokumentation | EN / DE |
Support (Forum) | Unterstuetzende Dienste |
Modulname | 95_ShareMaster.pm |
Ersteller | Prof. Dr. Peter A. Henning |
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! |
Das Modul 95_Shares.pm dient dazu, ein Wertpapierdepot zu verwalten. Dabei wurden wesentliche Bestandteile des Moduls 98_STOCKQUOTES.pm übernommen, aber strukturell so stark verändert, dass ein neuer Modulname sinnvoll war. vbs, dem Ersteller und Maintainer des Ursprungsmoduls sei an dieser Stelle gedankt. Die strukturellen Änderungen sind insbesondere:
- separate Währungen für alle Wertpapiere im Depot und das Depot selbst (Attribute shareCurrency und depotCurrency). Das ermöglicht, Wertpapiere in dieses Depot zu legen, die zwar für das eigene Depot in € gekauft werden, aber an ausländischen Börsen gehandelt und ggf. auch im Ausland verwahrt werden.
- Angabe einer Kategorie (z.B. "Rohstoff" oder "Bio") für jedes Wertpapier.
- deutliche Vereinfachung der Reading-Namen und Konfigurierbarkeit der angezeigten Werte.
- Alternative Symbole für jedes Wertpapier, z.B. Yahoo-Symbol|ISIN|WKN zum schnellen Wechsel des Datenanbieters
Einrichtung
Das Modul benötigt das Perl-Modul Finance::Quote, das am Sichersten mit dem Kommandozeilenbefehl
cpan Finance::Quote
installiert wird. Da hierbei viele zusätzliche Perl-Module geholt und getestet werden, kann das schon eine ganze Weile dauern!
Auf Linux-Systemen kann man das ggf. durch
apt install libfinance-quote-perl
abkürzen. Dabei kann es aber zu Fehlermeldungen beim Aufruf kommen, weil dieses Linux-Paket offenbar nicht ganz vollständig ist.
Die Definition des Depots ist sehr einfach und benötigt keine Parameter
define <Depotname> Shares
Das Attribut stocks enthält eine (gerne mehrzeilige) Liste der Wertpapiere im Format
<Symbol>:<Anzahl>:<Einstandswert>:<Kategorie>
- Wichtig ist, dass der Einstandswert für jedes Wertpapier in Depotwährung angegeben wird.
- Zum Thema der alternativen Symbolen siehe unten.
Das Modul 95_ShareMaster.pm dient der komfortablen Anzeige der mit dem obigen Modul verwalteten Werte (siehe Beispiele). Dabei erfolgt die Anzeige je Unterdepot, aber auch eine Zusammenfassung nach Kategorien.
Einrichtung
Die Definition erhält als Parameter alle Unterdepots
define <MasterDepotname> ShareMaster <Unterdepot1> [<Unterdepot2>]*
Wichtige Attribute
Für das Modul 95_Shares.pm
- shareCurrency ist die Anzeigewährung für die Wertpapiere. Format:
<ISO-Code for currency>[:<Currency Symbol>]
, Default: EUR:€ - depotCurrency ist die Anzeigewährung für den Gesamtwert dieses Depots, auch die Einstandswerte jedes Papier müssen in dieser Währung angegeben werden. Format:
<ISO-Code for currency>[:<Currency Symbol>]
, Default: EUR:€ - queryTimeout ist der Timeout für Abfragen, Default: 120 (Sekunden)
- pollInterval ist der Zeitabstand für Abfragen, Default: 300 (Sekunden)
- defaultSource ist eine '|'-separierte Liste von Datenanbietern. Siehe dazu den Abschnitt über alternative Symbole. Default: yahoo_json (Einzelquelle), gültige Werte erhält man mit dem Befehl
get <Depotname> sources
- sources ist eine kommagetrennte Liste im Format
<SymbolA>:<QuelleA>[,<SymbolX>:<QuelleX>]*
. Damit kann man spezielle Datenquellen für jedes einzelne Symbol festlegen. Alle Symbole, die darin nicht aufgeführt sind, werden von der jeweiligen Default-Source geholt. - sourcesLinks ist eine kommagetrennte Liste im Format
<QuelleA>:<StringA>[,<QuelleX>:<StringX>]*
. Der String ist eine URL, die den Platzhalter $SYMBOL enthalten kann. Dieser Platzhalter wird für jedes Wertpapier durch das verwendete Symbol ersetzt. Beispiel:
yahoo_json:http://de.finance.yahoo.com/quote/$SYMBOL
- arrows ist eine kommagetrennte Liste von Pfeilsymbolen im HTML-Format, die Änderungen im Kurswert symbolisieren, mit den Grenzen >1%,1%,0%,-1%,<-1% Default: "🢁,🢅,🢂,🢆,🢃"
- colors ist eine kommagetrennte Liste von Farbspezifikationen im HTML-Format, um Änderungen in den Kurswerten darzustellen, mit den Grenzen >1%,1%,0%,-1%,<-1% Default: "green,seagreen,black,orangered,red"
- headercolor ist eine Farbspezifikation im HTML-Format zur Hervorhebung der Kopfzeile in einer Depotabelle. Default #aaaaff;
Für das Modul 95_ShareMaster.pm
- depotCurrency ist die Anzeigewährung für den Gesamtwert dieses Depots, auch die Einstandswerte jedes Papier müssen in dieser Währung angegeben werden. Format:
<ISO-Code for currency>[:<Currency Symbol>]
, Default: EUR:€ - categories ist eine kommagetrennte Liste der Kategorien für dieses Depot, die in der Zusammenfassung dargestellt werden. Beispiel:
automotive,mobility,bio,chemistry,commodity,energy,finance,h2,health,pharma,realestate,sales,software,tech
Für die in diesem Beispiel verwendeten Kategorien gibt es im Modul eine deutsche Übersetzung.
- pollInterval ist der Zeitabstand für Abfragen, Default: 300 (Sekunden)
Alternative Symbole
Viele der Datenanbieter, z.B. Yahoo, erschweren in unregelmäßigen und nicht vorhersehbaren Abständen den Zugang. Das ist verständlich, weil sie durch den häufigen Zugriff Kosten haben - aber dennoch ärgerlich, weil man plötzlich von einem auf den anderen Tag keine Kursdaten mehr bekommt.
Aus diesem Grund bietet das Modul 95_Shares.pm die Möglichkeit, für jedes Wertpapier mehrere Symbole anzugeben. Die Syntax für jede Zeile des Attributes stocks ist in diesem Fall
<Symbol0>[|<SymbolN, N=1...>]*:<Anzahl>:<Einstandswert>:<Kategorie>,
Beispiel:
NADQ.DE|LU2197908721:10:500:tech,
Das erste ist in diesem Beispiel das Yahoo-Symbol für einen beliebten NASDAQ-ETF, das zweite die ISIN. Die Anzahl der alternativen Symbole ist nicht begrenzt.
Desweiteren gibt es für das Modul das Attribut defaultSource. Dessen Syntax ist
<Quelle0>[|<QuelleN, N=1...>]*
Beispiel:
yahoo_json|xetra
Die dritte Komponente dieses Systems ist das Attribut altSymbol. Und damit sollte schon klar sein, wie das läuft.
- Wenn altSymbol den Wert 0 hat, wird für jedes Position mit dem Symbol0 standardmäßig bei Quelle0 nachgeschaut
- Wenn altSymbol den Wert 1 hat, wird für jedes Position mit dem Symbol1 standardmäßig bei Quelle1 nachgeschaut
- etc.
Sollte es also vorkommen, dass Yahoo den Zugriff mal wieder erschwert, kann man mit der einfachen Änderung
attr <Depotname> altSymbol 1
auf Xetra als Quelle umschalten, ohne den gesamten Depotbestand neu einzugeben.
Selbstverständlich wird in der Anzeige des Depots nur das jeweils verwendete Symbol dargestellt - die komplexere Darstellung beschränkt sich auf das stocks-Attribut.
Beispiele
Beispieldepot mit 4 deutschen Papieren
Die Währungsattribute des Depots DepotY_EUR haben die Werte
attr DepotY_EUR depotCurrency EUR attr DepotY_EUR shareCurrency EUR
Das Attribut stocks des Depots DepotY_EUR bekommt den mehrzeiligen Wert
BAS.DE:3:154:chemistry, FRA.DE:6:258.47:mobility, LIN.DE:1:212:chemistry, TKA.DE:10:72:tech,
Beispieldepot mit 2 kanadischen Papieren
Die Währungsattribute des Depots DepotY_CAD haben die Werte
attr DepotY_CAD depotCurrency EUR attr DepotY_CAD shareCurrency CAD
Das Attribut stocks des Depots DepotY_CAD bekommt den mehrzeiligen Wert
PSLV.TO:10:73:commodity, BLDP.TO:5:76:h2
Zusammenfassung der beiden Beispieldepots
Die Definition erhält als Parameter die beiden oben definierten Depots
define DepotY ShareMaster DepotY_EUR DepotY_CAD
und führt zur Anzeige aus dem oberen Bild.