Hallo,
ja freichlich. Es handelt sich dabei um die Saras S.p.a WKN A0JL4P.
Gruß, HjP
Hallo,
ja freichlich. Es handelt sich dabei um die Saras S.p.a WKN A0JL4P.
Gruß, HjP
Hey,
da ich für mehrere Wertpapiere historische Kurse einfügen wollte die nicht bei Portfolie Report dabei waren, habe ich ein kleines Script geschrieben, welches die Erstellung des Links automatisiert.
Den Link kann man dann einfach nehmen und bei Portfolio Performance eintragen.
Mithilfe der ISIN, findet es bei Onvista die Notationid raus und zusammen mit dem Anfangsdatum erstellt es dann automatisch den richtigen Link. Das funktioniert stand heute 15. April 2021. Falls sich da in Zukunft wieder was ändert, könnten wir/ich das in dem Script immer up-to-date halten.
Die ISINs könnten gespeichert werden, sodass man bei Änderungen von OnVista nur das Skript einmal neu anschmeißen muss und sofort alle neuen Links hat. Wenn das jemand möchte, mach ich das.
(das Fett gedruckte gibt man ein)
python3 main.py
ISIN: LU0125951151
0: Baader Bank (EUR, Echtzeit)
1: Berlin (EUR, Echtzeit)
2: Düsseldorf (EUR, Echtzeit)
3: Frankfurt (EUR, verzögert)
4: gettex (EUR, Echtzeit)
5: Hamburg (EUR, Echtzeit)
6: KVG (EUR, Echtzeit)
7: München (EUR, Echtzeit)
8: Quotrix (EUR, Echtzeit)
9: Stuttgart (EUR, Echtzeit)
10: Swiss Exchange (EUR, verzögert)
11: Tradegate (EUR, Echtzeit)
stockmarket: 3
Startdate (any format): 2018-05-01
Der produzierte Link:https://www.onvista.de/onvista/times+sales/popup/historische-kurse/?notationId=15912438&dateStart=01.05.2018&interval=Y5&assetName=LU0125951151_MFS%20Meridian-Eur.Value%20A1%20EUR&exchange=Frankfurt%20%28EUR%2C%20verz%C3%B6gert%29
Pull Requests oder sonstiges Kommentar sind natürlich willkommen.
Nachdem ihr auf den Link gedrückt habt seht ihr direkt eine kleine Anleitung, der ihr einfach folgen müsst. Ist keine große Sache. Besteht alles nur aus einem Python Script mit ein paar Zeilen Code.
P.S: wär echt cool, wenn wir alle in dem Skript in Zukunft einfach immer eine Methode hätten die aktuell funktioniert, dann muss man nicht immer aufs neue das Forum durchstöbern und sich selbst damit auseinander setzen
Grüße
Fabian
Gute Idee. Zwei Verbesserungsvorschläge:
{TODAY:dd.MM.yyyy:-P1M}
im folgenden Link).Verallgemeinert und vereinfacht könnte der Output des Python-Scripts sein:
https://www.onvista.de/onvista/times+sales/popup/historische-kurse/?notationId=15912438&dateStart={TODAY:dd.MM.yyyy:-P1M}&interval=Y5&assetName=a&exchange=a
Damit muss man dann zukünftig kein Datum mehr anpassen
Hey @hemagi,
In der URL müssen die Werte gesetzt sein. Man könnte natürlich auch xx rein schreiben aber dann kann man auch gleich die richtigen rein geben. Auf der Website von OnVista werden sie dann ja angezeigt und tragen so zur Übersichtlichkeit bei. Was man dagegen davon hat den Link zu “vereinfachen” wüsste ich gerade nicht. Den Link muss ja niemand händisch abschreiben.
- PP kann den Zeitraum variabel halten, etwa: “heute vor einem Monat” (
{TODAY:dd.MM.yyyy:-P1M}
im folgenden Link).
Das ist interessant und könnt man einbauen. Für was steht -P1M?
Einen Monat vor heute.
Grundsätzlich wäre begrüßenswert, wenn nicht mehr Daten bezogen würden als gerade nötig. Sonst könnte Onvista auf die Idee kommen, das zu blockieren, um Serverlast einzusparen.
Hab das mit “{TODAY:dd.MM.yyyy:-P5Y}” jetzt gemacht. Kannte ich vorher nicht. Echt gut
Die anderen Werte werden ja nicht extra abgefragt sondern stehen auf der gleichen Website wo auch die NotationId her ist. Erzeugt also keine extra Anfrage an den onvista Server.
Man könnte natürlich auch xx rein schreiben aber dann kann man auch gleich die richtigen rein geben. Auf der Website von OnVista werden sie dann ja angezeigt und tragen so zur Übersichtlichkeit bei.
Ob es gut aussieht, interessiert PP nicht. Es sollen doch nur Daten geholt werden. Form follows Function. Und die Lesbarkeit bei den ganzen URL-encodeten Zeichen ist… unterdurchschnittlich.
Hab das mit “{TODAY:dd.MM.yyyy:-P5Y}” jetzt gemacht.
Bloß nicht. So holst du bei jedem Aufruf die Daten der letzten 5 Jahre. Genauso wie @chirlu bin ich der Meinung, dass man so wenig Daten holen sollte wie nötig, sonst machen es die Lieferanten den Zugang irgendwann zu. Denn jede Query kostet sie Geld.
Dein Argument
Die anderen Werte werden ja nicht extra abgefragt sondern stehen auf der gleichen Website wo auch die NotationId her ist. Erzeugt also keine extra Anfrage an den onvista Server.
ist schwach, da onvista leicht merken kann, dass die Kursabfrage nicht aus ihren Webseiten erfolgt. Und wenn sie nicht von ihren Webseiten erfolgt, bringt es ihnen keinen Gewinn, weder, dass sie neue eigene Kunden generieren, noch das Werbung geschaltet werden kann.
Ich war davon ausgegangen, dass jeder einmal im Monat PP öffnet und die Kurse aktualisiert. Daher reicht es vollkommen, wenn wenn man die Daten des letzten Monats holt. Öffnet man fast jeden Tag PP, kann man sich auch auf 1 Woche beschränken.
Wenn du in deinem Python-Script anbietest, dass man die Anzahl der Monate oder Tage angeben kann, für die rückwirkend die Daten geholt werden, und default 1 Monat oder 7 Tage anbietest, würde das helfen.
Was haltet ihr von der Idee, Ariva als zusätzliche Quelle zu implementieren? Hierdurch werden Wikifolios sehr gut abgedeckt. Ich nutze Wikifolio und konnte noch keine zufriedenstellende Lösung finden, die historischen Kurse automatisch zu importieren. Wählt man “Tabelle auf einer Webseite” als Kurslieferant und anschließend Ariva werden nur die letzten 30 Tage importiert.
Ich habe die Umsetzung bereits mit python programmiert, eventuell könnte man den Code daran orientieren. Hier der Code:
import pandas as pd
import re
from bs4 import BeautifulSoup
Angaben vom Nutzer
isin = ‘DE000LS9HP25’ # Wikifolio-ISIN
WKN aus der Wikifolio-ISIN extrahieren
wkn = re.match(r"DE[0-9]+(.*)", isin).group(1)[:-1] # wkn = ‘LS9HP2’
Finde die SECU-Nummer des Wertpapiers für Ariva
base_url = ‘https://www.ariva.de/’
url_ariva = base_url + ‘zertifikate/’ + str(wkn) + ‘/historische_kurse?’
response = requests.get(url_ariva)
soup = BeautifulSoup(response.text, “html.parser”)
secu = soup.find(‘input’, {‘name’: ‘secu’})[‘value’] # secu = ‘124122501’
HTML Element mit SECU-Nummer (Größer- und Kleinerzeichen durch Fragezeichen ersetzt)
?form action=“/quote/historic/historic.csv” method=“get” name=“histcsv”?
?input type=“hidden” name=“secu” value=“124122501”?
…
?/form?
Download csv mit historischen Kursen bis 1.1.2000 (Datum kann man beliebig weit zurück setzen)
url_download = base_url + ‘/quote/historic/historic.csv?secu=’ + str(secu) +
‘&min_time=1.1.2000&max_time=17.4.2021&trenner=%3B&go=Download’
historical_quotes = pd.read_csv(url_download, delimiter=“;”, decimal=“,”)
Das Wertpapier existiert erst seit dem 04.12.2015
Output:
Datum Erster Hoch Tief Schlusskurs Stuecke Volumen
0 2021-04-16 460.1580 465.5520 459.4135 465.2435 NaN NaN
1 2021-04-15 457.9710 460.0640 457.9170 459.5685 NaN NaN
… … … … … … …
1718 2015-12-07 163.5720 164.4280 163.1080 164.3945 NaN NaN
1719 2015-12-04 161.9405 163.6495 161.8135 163.5490 NaN NaN
Warum machst du keinen einmaligen Import per CSV und dann reichen die 30 Tage doch, wenn du PP einmal im Monat aufmachst
Ich bin davon ausgegangen, dass die historischen Kurse komplett überschrieben werden . Wenn nur neue hinzugefügt werden, ist das ausreichend. Danke
Fall jemand dieses Autoit-Script brauchen kann oder die Daten die ich herausfand …
Die Zeile wo Run steht, damit starte ich die ISIN direkt und erspare mir so die ISIN auf der Avira.de-Webseite einzugeben.
Per Browser Seitenquelltext suche ich dann nach “aic=” um die secu-Nummer für das jeweilige Wertpapier herauszufinden.
Beides ist innerhalb von 10 Sekunden erledigt.
Danach deaktivere ich die Run-Zeile indem ich es als Kommentar markiere.
Und teile der Schleife die secu-Nummer zu, indem ich die Variale $secu_9999 aktiviere, per entkommentieren.
Innerhalb von 5 Sekunden erledigt.
Bei der ersten Schleife wird nur bei den Börsenplätzen gesucht, bei denen ich die id-Nummer herausfand.
Ansonst kann man noch auf die zweite Schleife umschalten, die probiert alles blind durch.
Währung kann man auch umschalten, von EUR zu USD.
Mit meinem Script kann ich innerhalb von 30 Sekunden alle möglichen CSV-Listen runterladen,
ohne die Webseite berühren zu müssen.
;~ aic=
#include <Date.au3>
Local $i
Local $boerse_id_[36]
$boerse_id_[0] = 0 ;Duesseldorf
$boerse_id_[1] = 1 ;Frankfurt
$boerse_id_[2] = 2 ;Hamburg
$boerse_id_[3] = 3 ;Hannover
$boerse_id_[4] = 4 ;Muenchen
$boerse_id_[5] = 5 ;Stuttgart
$boerse_id_[6] = 6 ;Xetra
$boerse_id_[7] = 8 ;Fondsgesellschaft
$boerse_id_[8] = 16 ;L&S_RT
$boerse_id_[9] = 17 ;Berlin
$boerse_id_[10] = 20 ;Indizes_Schweiz
$boerse_id_[11] = 21 ;NYSE
$boerse_id_[12] = 24 ;Indizes_Hang_Seng
$boerse_id_[13] = 30 ;RBS_Indikation
$boerse_id_[14] = 33 ;Rohstoffe_Indikation
$boerse_id_[15] = 37 ;DB_Indikation_Indizes
$boerse_id_[16] = 39 ;Frankfurt_Zertifikate
$boerse_id_[17] = 40 ;Nasdaq
$boerse_id_[18] = 41 ;AMEX
$boerse_id_[19] = 47 ;Stuttgart(EUWAX)
$boerse_id_[20] = 58 ;Wien
$boerse_id_[21] = 60 ;Wien_Opt.&Fut.
$boerse_id_[22] = 71 ;Indizes_US
$boerse_id_[23] = 72 ;Indizes_Nasdaq
$boerse_id_[24] = 77 ;Indizes_Boerse_Wien
$boerse_id_[25] = 83 ;Nasdaq_OTC_Other
$boerse_id_[26] = 102 ;HypoVereinsbank
$boerse_id_[27] = 123 ;SIX_Swiss_Exchange
$boerse_id_[28] = 126 ;DB_Indikation_Rohstoffe
$boerse_id_[29] = 130 ;FXCM
$boerse_id_[30] = 131 ;Tradegate
$boerse_id_[31] = 136 ;pro aurum
$boerse_id_[32] = 162 ;Quotrix
$boerse_id_[33] = 172 ;ARIVA_Indikation_Rohstoffe
$boerse_id_[34] = 173 ;ARIVA_Indikation_Indizes
$boerse_id_[35] = 207 ;Gettex
Local $secu_9999 = 0
;~ Local $secu_9999 = "124460367" ; PL11BTS00015 11 Bit Studios
;~ Local $secu_9999 = "102110472" ; DE000FTG1111 _flatexDEGIRO
;~ Local $secu_9999 = "116183" ; AT000AGRANA3 Agrana Beteiligungs
;~ Local $secu_9999 = "41873" ; US0126531013 Albemarle Corporation
;~ Local $secu_9999 = "144480705" ; KYG017191142 Alibaba Group
;~ Local $secu_9999 = "269125" ; US02079K3059 Alphabet Inc A
;~ Local $secu_9999 = "247606" ; AT0000A18XM4 ams
;~ Local $secu_9999 = "23" ; AT0000969985 AT&S
;~ Local $secu_9999 = "126743379" ; KYG070341048 Baidu Inc
;~ Local $secu_9999 = "3430" ; US0846707026 Berkshire Hathaway B
;~ Local $secu_9999 = "152225" ; CNE100000296 BYD
;~ Local $secu_9999 = "100397716" ; PLOPTTC00011 CD Projekt
;~ Local $secu_9999 = "920" ; HK0941009539 China Mobile
;~ Local $secu_9999 = "48187" ; CNE1000002V2 China Telecom Corporation Limited
;~ Local $secu_9999 = "100195618" ; BMG210901242 China Water Affairs Group
;~ Local $secu_9999 = "116237635" ; AT00000FACC2 Facc
;~ Local $secu_9999 = "107840887" ; US30303M1027 Facebook
;~ Local $secu_9999 = "557" ; US3682872078 Gazprom ADR
;~ Local $secu_9999 = "100358677" ; KYG4402L1510 Hengan International
;~ Local $secu_9999 = "103516555" ; VGG456671053 HollySys Automation Technologies
;~ Local $secu_9999 = "410" ; US4581401001 Intel
;~ Local $secu_9999 = "148573414" ; KYG8208B1014 JD.COM INC
;~ Local $secu_9999 = "6957" ; US55315J1025 MMC Norilsk Nickel ADR
;~ Local $secu_9999 = "880993" ; AT0000A00Y78 Petro Welt Technologies
;~ Local $secu_9999 = "127985912" ; PLPLAYW00015 PlayWay
;~ Local $secu_9999 = "884924" ; AT0000A00XX9 Polytec Group
;~ Local $secu_9999 = "100611933" ; KYG875721634 TENCENT HOLDINGS LTD
;~ Local $secu_9999 = "969" ; US8816242098 Teva Pharma. Ind. LTD
;~ Local $secu_9999 = "727762" ; AT0000908504 Vienna Insurance Group
;~ Local $secu_9999 = "340" ; AT0000937503 Voestalpine
;~ Local $secu_9999 = "1753" ; DE0007664039 Volkswagen VZ
;~ Local $secu_9999 = "132005395" ; DE000A19MFH4 7,75% PHOTON ENERGY 17/22/+-0
;~ Local $secu_9999 = "141561392" ; US36257Y1091 GSX Techedu INC ADR
;~ Local $secu_9999 = "134563408" ; US46267X1081 IQIYI INC
;~ Local $secu_9999 = "116003387" ; US47215P1066 JD.COM INC ADR
;~ Local $secu_9999 = "1079" ; US67066G1040 Nvidia
;~ Local $secu_9999 = "100131736" ; IE00BYTBXV33 Ryanair Holdings plc
;~ Local $secu_9999 = "106367981" ; IE00B4NCWG09 Physical Silver ETC - iShares
;~ Local $secu_9999 = "100586593" ; DE000A0S9GB0 XETRA-GOLD
;~ Local $secu_9999 = "323" ; AT0000999982 ATX
;~ Local $secu_9999 = "101655195" ; AT0000A09FJ6 ATX TR performance
;~ Local $secu_9999 = "103506594" ; CNM0000001Y0 CHINA___FESTLAND___CSI 300
;~ Local $secu_9999 = "4151" ; HK0000004322 CHINA___HONGKONG___Hang Seng
;~ Local $secu_9999 = "290" ; DE0008469008 DAX performance
;~ Local $secu_9999 = "675" ; CH0009980894 SMI - Swiss Market Index
;~ Local $secu_9999 = "4325" ; US2605661048 USA___Dow Jones Ind. Average
;~ Local $secu_9999 = "5873" ; US6311011026 USA___NASDAQ 100
;~ Local $secu_9999 = "462" ; XC0009694271 USA___NASDAQ Composite
;~ Local $secu_9999 = "" ; CNM000000019 CHINA___FESTLAND___SSE Composite
;~ Local $secu_9999 = "32119" ; XC0009655157 INDEX___GOLD
;~ Local $secu_9999 = "" ; US12497K1007 INDEX___VIX
;~ Local $secu_9999 = "4152" ; US78378X1072 USA___S&P 500
;~ Local $secu_9999 = "102975963" ; LU0489337690 EUROPA___Xtrackers FTSE EPRA/NAREIT Developed Europe Real Estate UCITS ETF 1C
;~ Local $secu_9999 = "226974" ; XC0009692739 INDEX___MSCI-World
;~ Local $secu_9999 = "130984379" ; IE00BDFL4P12 WELT___iShares Diversified Commodity Swap UCITS ETF
;~ Local $secu_9999 = "134911050" ; LU1681045370 WELT___MSCI Emerging Markets - Amundi
;~ Local $secu_9999 = "102535008" ; IE00B4L5Y983 WELT___MSCI World - iShares
;~ Local $secu_9999 = "116671059" ; IE00BJ0KDQ92 WELT___MSCI World - Xtrackers
;~ Local $secu_9999 = "117857852" ; US00214Q1040 ARK ETF TR.-INNOVAT.ETF
;~ Local $secu_9999 = "117165" ; LU0150613833 ME Fonds - Special Values - A EUR DIS
;~ Local $secu_9999 = "143212160" ; DE000A2PF0V5 OSPI-Investorenfonds - R EUR DIS
;~ Local $secu_9999 = "26734" ; LU0112803316 Swisscanto(LU)Pf.Fd.Resp.Balance(CHF)AA
;~ aic=
;~ Run("C:\Programme\Mozilla Firefox\firefox.exe -new-window https://www.ariva.de/CNM0000001Y0/historische_kurse","",@SW_MAXIMIZE)
If $secu_9999 = 0 Then Exit
Local $currency = "EUR"
;~ Local $currency = "USD"
Local $Suche = 1
;~ Local $Suche = 2
If $Suche = 1 Then
For $i = 0 To UBound($boerse_id_) - 1
Run("C:\Programme\Mozilla Firefox\firefox.exe " _
& "https://www.ariva.de/quote/historic/historic.csv?secu=" _
& $secu_9999 _
& "&boerse_id=" _
& $boerse_id_[$i] _
& "&clean_split=1&clean_payout=&clean_bezug=1¤cy=" _
& $currency _
& "&min_time=" _
& "2.1.1970" _
& "&max_time=" _
& _NowDate() & _
"&trenner=%3B&go=Download")
Sleep(10)
Next
Else
;~ consolewrite($i&@LF)
For $i = 0 To 250 Step 1
Run("C:\Programme\Mozilla Firefox\firefox.exe " _
& "https://www.ariva.de/quote/historic/historic.csv?secu=" _
& $secu_9999 _
& "&boerse_id="&$i _
& "&clean_split=1&clean_payout=&clean_bezug=1¤cy=" _
& $currency _
& "&min_time=" _
& "2.1.1970" _
& "&max_time=" _
& _NowDate() & _
"&trenner=%3B&go=Download")
Sleep(10)
Next
EndIf
Exit
Kann mir jemand erklären, welchen unterschied es in dem Programm macht, ob man historische Daten von Yahoo oder z.B. Alpha Vantage bezieht? Aktuell sehe ich nur, das man Hochs und Tiefs bei AV bekommt und bei Yahoo nicht, aber kann man in Portfolio-Performance damit etwas anfangen? Welche Quelle sollte man für “normale” Aktien am besten nehmen?
Solange die Kurse jeweils “richtig” sind erstmal gar keinen!
Je nach Wertpapier und Währung stehen die Kursdaten vielleicht nicht überall zur Verfügung. Aber alle Berechnungen bauen derzeit nur auf der Kurshistorie auf. Wo du die her bekommst ist dabei vollkommen egal.
Das hängt davon ab, wie du die Aktie angelegt hast. Ich für meinen Teil lege ausländische Aktien in ihrer Heimatwährung an. Damit brauche ich dann natürlich auch einen Kurslieferanten, der mir dies liefert. Ich handhabe das derzeit so, dass ich alle Kurse in EUR (soweit verfügbar) von Ariva hole und für alle anderen Kurse erstmal auf Yahoo gucke, bevor ich mir andere Quellen suche.
Hallo zusammen,
ich versuche jetzt schon seit einer Stunde die historischen Kurse zum Vanguard FTSE Developed World - IE00BKX55T58 einzupflegen. Es gelingt mir einfach nicht. Ich kann über verschiedene Webseiten wie erklärt das einfügen, aber da habe ich dann immer nur 1 Monat rückwirkend oder so.
Was auch komisch ist, dass bei meinen anderen ETFs alles da ist, nur bei diesem nicht. Kann mir da bitte jemand helfen?
Danke.
Mit kleinen Nachteilen: ist in Pfund, die letzte Woche fehlt (laut deinem Screenshot) und als allerletzten Wert scheint Yahoo Finance einen Dollarbetrag hineingeschmuggelt zu haben …
@ chirlu
Ich kann ja nicht erahnen in welcher Währung er sein ETF anlegt.
Dann hier in €uro, inklusive letzter Woche, geht aber nur zurück bis 31.10.2017
Hallo zusammen,
kann ich auch den Kurs irgendwie manuell eingeben, wenn was nicht börslich gehandelt wird?
Für eure kurze Info bedanke ich mich im Voraus und bis bald,
Tobias