Neues Modul: 98_STOCKQUOTES

Begonnen von vbs, 04 Februar 2015, 21:01:42

Vorheriges Thema - Nächstes Thema

ToKa

cpan -D Finance::Quote


liefert bei mir

Loading internal logger. Log::Log4perl recommended for better logging
Reading '/root/.cpan/Metadata'
  Database was generated on Thu, 07 Jan 2021 18:55:44 GMT
Finance::Quote
-------------------------------------------------------------------------
        (no description)
        E/EC/ECOCODE/Finance-Quote-1.49.tar.gz
        /usr/share/perl5/Finance/Quote.pm
        Installed: 1.49
        CPAN:      1.49  up to date
        Erik Colson (ECOCODE)
        eco@ecocode.net
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

Det20

#196
pi@raspberrypi:~ $ cpan -D Finance::Quote
Loading internal null logger. Install Log::Log4perl for logging messages
Reading '/home/pi/.cpan/Metadata'
  Database was generated on Thu, 07 Jan 2021 18:55:44 GMT
Finance::Quote
-------------------------------------------------------------------------
        (no description)
        E/EC/ECOCODE/Finance-Quote-1.49.tar.gz
        /usr/local/share/perl/5.24.1/Finance/Quote.pm
        Installed: 1.49
        CPAN:      1.49  up to date
        Erik Colson (ECOCODE)
        eco@ecocode.net

ToKa

Langsam fällt mir nichts mehr ein  :(

Bei mir läuft perl 5.30, kann mir aber nicht vorstellen, das es daran liegt.
Modulversion ist bei mir 98_STOCKQUOTES.pm:0.187720/2019-03-02
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

Det20

#198
9.1.2017 ... Komisch, mache täglich Updates.
Habe die Datei gefunden und lokal aktualisiert, trotzdem keine Zahlen.

Prof. Dr. Peter Henning

Hier mal 10 Aktien, die wunderbar funktionieren:
ZitatInternals:
   NAME       Depot_EUR
   NR         145
   STATE      xxxx 
   TYPE       STOCKQUOTES
   OLDREADINGS:
   READINGS:
   .....
   helper:
Attributes:
   currency   EUR
   defaultSource yahoo_json
   group      Depot
   pollInterval 3600
   queryTimeout 120
   room       hidden
   stateFormat Total
   stocks     FRA.DE:xxx:xxx,X011.DE:xxx:xxx,IXX.DE:xxx:xxx,X010.DE:xxx:xxx,AI.PA:xxx:xxx,NADQ.DE:xxx:xxx,RWE.DE:xxx:xxx,ZPRG.F:xxx:xxx,TKA.DE:xxx:xxx,EDF.PA:xxx:xxx
   verbose    0
   widgetOverride stocks:textField-long

LG

pah

ToKa

#200
Hallo Det,

hast Du die Datei aus 98_STOCKQUOTES.pm aus dem contrib-Verzeichnis kopiert?

Ansonsten hänge ich mal meine leicht modifizierte Version an.

VG
Torsten
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

ToKa

#201
Hier mal ein Testdepot dafür angelegt:

defmod Test STOCKQUOTES
attr Test alias Depot Test
attr Test currency EUR
attr Test defaultSource yahoo_json
attr Test event-on-change-reading .*
attr Test event-on-update-reading depot_.*
attr Test pollInterval 900
attr Test queryTimeout 310
attr Test sources SAP:yahoo_json,LI.V:yahoo_json
attr Test stocks SAP:1:110,LI.V:2:2
attr Test verbose 2
attr Test widgetOverride stocks:textField-long


Versuch es mal damit. Das liefert für SAP und LI.V Werte.

Du kannst die Symbole, wenn Du Sie über yahoo oder auch Google anhand ISIN / WKN gefunden hast damit testen. Einfach hinter dem = das Symbol ändern.
https://query1.finance.yahoo.com/v7/finance/quote?symbols=LI.V
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

Det20

#202
Danke, habe die PM durchgetauscht und vielen Dank erstmal für eure Geduld!

Ergebnis:
Wenn ich bei Yahoo suche, bekomme ich eine Auswahl der Aktie MX, FR, DE usw. Man muss DE auswählen, nur dann wird sie auch gefunden.

Ein Wunsch an den Entwickler: Es wäre mehr als hilftreich wenn ich bein nachkaufen/verkaufen optional aus '_name' wählen kann, also zB. '13X.F_name'. Bin sehr häufig am Day-Traden, Depot sieht oft Abends nicht so aus wie morgens. Wenn ich dann über den Namen kaufen/verkaufen könnte, wäre das mega.

Aktueller Wert (depot_cur_value_total) passt, depot_buy_value_total sowas von überhaupt nicht, entsprechend ist auch depot_value_diff_total gnadenlos falsch.

Det20

Zitat von: Prof. Dr. Peter Henning am 29 Dezember 2020, 10:01:19
P.S.: Hat jemand Interesse an einem Codeschnipsel, der mithilfe einer readingsGroup diese Anzeige hier schafft:

Ich, sehr gerne!

ToKa

#204
Zitat von: Det20 am 08 Januar 2021, 10:42:43
Aktueller Wert (depot_cur_value_total) passt, depot_buy_value_total sowas von überhaupt nicht, entsprechend ist auch depot_value_diff_total gnadenlos falsch.

Hast Du beim buy die Stückzahl und den ursprünglichen Gesamtkaufpreis richtig eingegeben? Achtung: Komma kennt das Modul nicht, Du musst für Nachkomma einen Punkt angeben.

Das Modul wird aktuell nicht weiter entwickelt, aber Deine Idee die vorhandenen Papiere als DropDown anzuzeigen, ist gut!
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

Det20

#205
Ja, zB ZJS1.F:100:50.0. Eigentlich müsste bei "d_buy_value_total" logischerweise 5000 stehen, ist aber nicht so, dort steht "50". Die 5000 finde ich im Test nicht wieder (STRG+F)

Fehler müsste in Zeile 416 sein, dann stimmt es bei mir ca (die nervigen Umrechnungsfehler ab 1 Mio EUR :))


readingsBulkUpdate($hash, $i . "_d_buy_value_total", $stockBuyPrice);


müsste ja eigentlich so sein:


readingsBulkUpdate($hash, $i . "_d_buy_value_total", $stockCount*$stockBuyPrice);


ToKa

Sorry, das kommt davon, wenn man aus dem Kopf heraus antwortet. Es ist der Gesamtpreis

Doku:
set <name> buy <Symbol> <Menge> <Gesamtpreis>
Wertpapier in Depot einbuchen. Wenn dieses Wertpapier bereits vorhanden ist, werden die Neuen einfach dazuaddiert.
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

Det20

Ah, da liegt der Fehler. Danke. Du hast nicht zufällig noch ne nette Ansicht rumfliegen?

ToKa

DepotTest musst Du durch den von Dir verwendeten Namen ändern und bei CellStyle die Nr. Deiner letzten Zeile:


defmod rg_Test readingsGroup <Name>,<Bestand>,<Einstandskurs>,<Einstandswert>,<Aktueller&nbspKurs>,<Aktueller&nbspWert>,<G/V&nbsp+/-&nbsp(heute)>,<G/V&nbsp%&nbsp(gesamt)>,<G/V&nbsp+/-&nbsp(gesamt)>,<Kurs-Datum>\
<hr>\
DepotTest:@1,(.*)_name,!#1_d_stockcount,!#1_d_buy_quote,!#1_d_buy_value_total,!#1_last,!#1_d_cur_value_total,!#1_d_value_diff,!#1_d_p_change_total,!#1_d_value_diff_total,!#1_isodate\
<tfoot>\
<hr> \
DepotTest:!Depotwert,!--,!--,!depot_buy_value_total,!--,!depot_cur_value_total,!depot_value_diff,!depot_p_change_total,!depot_value_diff_total,!state:t
attr rg_Test alias Wertpapierdepot Test
attr rg_Test alwaysTrigger 2
attr rg_Test cellStyle { if ($ROW == 16) { return ($READING ne 'state') ? 'style="font-weight:bold"' : 'style="font-weight:normal"' }}
attr rg_Test headerRows 1
attr rg_Test nameStyle {if ($COLUMN > 1) {return 'style="text-align:right;;font-weight:bold"'} }
attr rg_Test nonames 1
attr rg_Test notime 1
attr rg_Test sortColumn 1
attr rg_Test valueFormat { if ($READING =~ /_name/) {return substr($VALUE,0,25)}\
  elsif ($READING =~ /_last|_value/) {return "%.2f" } \
  elsif ($READING =~ /_stockcount/) {return "%.3f"}\
  else {return $VALUE } }
attr rg_Test valueStyle { if ($READING =~ /_p_|_diff/) { return ($VALUE < 0) ? 'style="color:red;;text-align:right"':'style="color:green;;text-align:right"'} \
elsif ($READING =~ /_name/ || $VALUE eq "Depotwert") {return 'style="text-align:left"' } \
elsif ($READING =~ /_d_cur_value_total/) { return 'style="font-weight:bold;;text-align:right"'}\
else { return 'style="text-align:right"'} }
attr rg_Test valueSuffix { if ($READING =~ /p_change/) { return " %" } elsif ($READING =~ /value|diff|last|buy_quote/) { return " €"}}



RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

Det20

#209
Haben zufällig die gleiche Anzahl Aktien :)
Sieht Mega aus, krass! Vielen vielen Dank! Kann man das so an TabletUI übertragen?