Quellen für historische Kurse

Ich habe mir das mit Google Sheets nochmal genauer angeschaut. Man kann seine Sheets ja als HTML Tabelle publizieren.

Wenn ich eine CSV Datei auf GDrive hochlade als Google Sheet umwandle, publiziere funktioniert das ganze wunderbar.

Wenn ich allerdings mit eine Tabelle in einem Sheet ziehe (meine Formel zieht sich automatisch per scraping die Daten), dann publiziere klicke, will PP die HTML Tabelle nicht annehmen.
Hier ein Beispiel:

Wenn man mit dem Browser drauf geht, sieht man eine HTML Tabelle, PP weigert sich aber diese anzunehmen.

Hat jemand eine Idee warum PP diese nicht annehmen will, aber wenn man CSV Datei als Sheets umwandelt funktioniert das wunderbar? Wenn PP diese Funktionalität anpassen könnte, dass diese Tabellen angenommen werden würde das die Flexibilität enorm erweitern, da man dann diesen als weiteren “Kursanbieter” hätte und sich Google Sheets automatisch die Kurse zieht :blush:

Man kann diese auch als JSON in PP einpflegen. Muss allerdings einige IDs ändern. Ein klein wenig umständlicher. Besser wäre wenn PP diese Tabelle einfach annehmen würde.

Ich lese da nur „#NAME?“.

@chirlu In PP oder wenn du die Google Sheet Seite aufrufst?
Der Link zeigt auf jeden Fall die Tabelle an:

Im Moment ja; vorhin nicht.

Nur wenn JavaScript verwendet wird. Da PP JavaScript nicht verarbeiten kann, kann PP keine Tabelle finden

Nein, wenn ich die Seite mit wget herunterlade, sind die Daten drin. Die Tabelle wird also nicht dynamisch erzeugt.

Ich würde mal versuchen, den Titel der zweiten Spalte in „Price“ zu ändern.

Stimmt, CURL zeigt die Wahrheit. Merkwürdig warum mir der Browser ohne Script die Daten nicht angezeigt hat :thinking:

                <table>
                    <thead>
                        <tr>
                            <th></th>
                            <th></th>
                            <th></th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            <th>
                                1
                            </th>
                            <td>Date</td>
                            <td>Quote</td>
                        </tr>
                        <tr>
                            <th>
                                2
                            </th>
                            <td>1749-01-01</td>
                            <td>8.0</td>
                        </tr>
                        <tr>
                            <th>
                                3
                            </th>
                            <td>1750-01-01</td>
                            <td>7.0</td>
                        </tr>
...

Wenn ich den HTML Parser gerade lese, sollte die Tabellenstruktur theoretisch lesbar sein. Dann sollte/könnte @chirlu 's Vorschlag funktionieren. Nur mit der Erkennung des Zahlenformats könnte es hapern.

Ich hab’s mittlerweile hingekriegt, mache am WE dazu ein Update via ein kleines gif wie das geht, falls das jemand nachmachen will. Hat mich ziemlich viel Nerver gekoset :sweat:

THX @m4758406

Hallo,

ich hatte keine Quelle für Solactive Indizes gefunden (https://www.solactive.com/indices/).

Über deren Homepage konnte ich keine tabellarisch aufbereiteten historischen Daten ziehen. Die Solactive Indizes haben eine ISIN so habe ich mir die Linkstruktur von Avira zunutze gemacht. Im Link den Namen des ETF durch die ISIN ersetzt und siehe da: auch wenn sie über die Suche nicht zu finden sind es gibt historische Daten über Börse Stuttgart → https://www.ariva.de/unnamed_security-de000sl0avn3-index/historische_kurse
& Link direkt zur Börse Stuttgart

Dann ein CSV runterladen, die ersten Daten einspielen und das letzte Monat aktualisiere ich mit dem bekannten Link über “Tabelle auf einer Webseite” → https://www.ariva.de/unnamed_security-de000sl0avn3-index/historische_kurse?go=1&boerse_id=155&month=&clean_split=1&clean_bezug=1

1 Like

Hallo hijacker

Bei comdirect.de bekommst du die Kursdaten noch kompletter, bei deiner ISIN bis zum 24.06.2020.

Hier die 3 Downloadlinks …

https://www.comdirect.de/inf/kursdaten/historic.csv?DATETIME_TZ_END_RANGE_FORMATED=30.05.2021&DATETIME_TZ_START_RANGE_FORMATED=2.1.1970&ID_NOTATION=298967885&INTERVALL=16&OFFSET=0&WITH_EARNINGS=false

https://www.comdirect.de/inf/kursdaten/historic.csv?DATETIME_TZ_END_RANGE_FORMATED=30.05.2021&DATETIME_TZ_START_RANGE_FORMATED=2.1.1970&ID_NOTATION=298967885&INTERVALL=16&OFFSET=1&WITH_EARNINGS=false

https://www.comdirect.de/inf/kursdaten/historic.csv?DATETIME_TZ_END_RANGE_FORMATED=30.05.2021&DATETIME_TZ_START_RANGE_FORMATED=2.1.1970&ID_NOTATION=298967885&INTERVALL=16&OFFSET=2&WITH_EARNINGS=false

Die Downloadlinks unterscheiden sich nur bei “OFFSET=”
OFFSET=0
OFFSET=1
OFFSET=2

OFFSET zeigt auf die jeweilige Seite.
Denn bei comdirect.de muss man Seiten blättern und bekommt daher auch nicht die CSV in nur einer Datei sondern nur pro Seite.

Kannst selber bei comdirect für dein Wertpapier die CSV suchen und wirst feststellen das es dort deutlich mühsamer ist aber man die Daten kompletter bekommt.


Befasse mich seit vielen Wochen mit dem Download von Kursdaten.
Bei folgenden Webseiten kann man Kursdaten (CSV) runterladen …

1.)
Hier bekommst du Währungskurse zum Euro → bundesbank.de
(Euro-Referenzkurs_Tageskurse_der_EZB)

2.)
comdirect.de
(hier bekommt man häufig sehr alte historische Daten die sonst niemand hat, ist aber mühsam downzuloaden da sehr viele einzelne CSV-Dateien, mir dafür ein Script geschrieben um es automatisiert runterzuladen)

3.)

(bei den beiden ist es am bequemsten die alten Daten runter zu laden, und hat es zugleich meist sehr komplett)

4.)
wienerborse.at
(hier lud ich mir die historischen Daten von allen österreichischen Aktien runter)

5.)

(hier lud ich mir die historischen Daten vom Schweizer Index runter)

6.)

wallstreet-online.de
(falls ich nirgendwo finde probier ich hier)

7.)

(für Crypto)

1 Like

Eine Autoit Schleife geschrieben um automatisiert von comdirect.de die CSV-Dateien runter zu laden.
Man muss nur die “ID_NOTATION=” anpassen. Derzeit ist dafür “15826957” eingegeben.

$comdirect = 0
;~ $comdirect = 1
If $comdirect = 1 Then
	For $i = 0 To 60
		Run("C:\Programme\Mozilla Firefox\firefox.exe " _
		& "https://www.comdirect.de/inf/kursdaten/historic.csv?DATETIME_TZ_END_RANGE_FORMATED=" _
		& _NowDate() _
		& "&DATETIME_TZ_START_RANGE_FORMATED=" _
		& "2.1.1970" _
		& "&ID_NOTATION=" _
		& "**15826957**" _
		& "&INTERVALL=" _
		& "16" _
		& "&OFFSET=" _
		& $i _
		& "&WITH_EARNINGS=" _
		& "false")
		Sleep(10)
	Next
	Exit

Hier mein Script für onvista.de
Auch hier muss man nur die Zahl für das jeweilige Wertpapier nach “notationId=” austauschen.

$onvista = 0
;~ $onvista = 1
If $onvista = 1 Then
	Local $dateStart[11]
	$dateStart[0]  = "15.12.1969"
	$dateStart[1]  = "15.11.1974"
	$dateStart[2]  = "15.10.1979"
	$dateStart[3]  = "15.09.1984"
	$dateStart[4]  = "15.08.1989"
	$dateStart[5]  = "15.07.1994"
	$dateStart[6]  = "15.06.1999"
	$dateStart[7]  = "15.05.2004"
	$dateStart[8]  = "15.04.2009"
	$dateStart[9]  = "15.03.2014"
	$dateStart[10] = "15.02.2019"
	For $i = 0 To 10
		Run("C:\Programme\Mozilla Firefox\firefox.exe " _
		& "https://www.onvista.de/onvista/boxes/historicalquote/export.csv?" _
		& "notationId=" _
		& "**15826957**" _
		& "&dateStart=" _
		& $dateStart[$i] _
		& "&interval=Y5")
		Sleep(1000)
	Next
	Exit
EndIf

hier mein Visual-Basic-Script (Microsoft Excel - xlsm Format) um mehrere CSV-Dateien in eine Datei zusammenzufügen …

Sub CSV_zusammenfuegen()

Dim dateien, i, lastrow

lastrow = 1
dateien = Application.GetOpenFilename _
("csv-Dateien (*.csv), *.csv", MultiSelect:=True)

If IsArray(dateien) Then
For i = 1 To UBound(dateien)
Workbooks.Open dateien(i), Local:=True
With ThisWorkbook.Sheets(1)
ActiveSheet.UsedRange.Copy Destination:=.Range("A" & lastrow)
lastrow = .UsedRange.Rows.Count + 1
End With
ActiveWorkbook.Close False
Next i
End If

Dim dt As String
dt = Format(CStr(Now), "yyyy.mm.dd___hh_mm_ss")

ThisWorkbook.SaveAs Filename:="A:\___CSV - zusammenfuegen___" & dt & ".csv", FileFormat:=xlCSV, Local:=True, ReadOnlyRecommended:=False, CreateBackup:=False
ThisWorkbook.Saved = True

On Error Resume Next
Application.Quit
ActiveWorkbook.Close SaveChanges:=True

End Sub

hier dasselbe Excel-Script und zusätzlich für die Webseite de.investing.com optimiert.

Sub de_investing_com_zusammenfuegen()

Dim dateien, i, lastrow

lastrow = 1
dateien = Application.GetOpenFilename _
("csv-Dateien (*.csv), *.csv", MultiSelect:=True)

If IsArray(dateien) Then
For i = 1 To UBound(dateien)
Workbooks.Open dateien(i), Local:=True
With ThisWorkbook.Sheets(1)
ActiveSheet.UsedRange.Copy Destination:=.Range("A" & lastrow)
lastrow = .UsedRange.Rows.Count + 1
End With
ActiveWorkbook.Close False
Next i
End If

Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1)), TrailingMinusNumbers:=True

Dim dt As String
dt = Format(CStr(Now), "yyyy.mm.dd___hh_mm_ss")

ThisWorkbook.SaveAs Filename:="A:\___CSV - zusammenfuegen___" & dt & ".csv", FileFormat:=xlCSV, Local:=True, ReadOnlyRecommended:=False, CreateBackup:=False
ThisWorkbook.Saved = True

On Error Resume Next
Application.Quit
ActiveWorkbook.Close SaveChanges:=True

End Sub

hier alle ariva.de Börsen ID-Nummern die ich bisher kenne …
Stuttgart , Hamburg und Duesseldorf wurden von markiert denn die haben bis 22:00 offen :slight_smile:

Local $Krypto = 0
;~ Local $Krypto = 1

If $Krypto = 0 Then
	Local $boerse_id_[42]
	$boerse_id_[0] =    0 ;Duesseldorf				*** 	3. Duesseldorf = 0
	$boerse_id_[1] =    1 ;Frankfurt
	$boerse_id_[2] =    2 ;Hamburg					*** 	2. Hamburg     = 2
	$boerse_id_[3] =    3 ;Hannover
	$boerse_id_[4] =    4 ;Muenchen
	$boerse_id_[5] =    5 ;Stuttgart				*** 	1. Stuttgart   = 5
	$boerse_id_[6] =    6 ;Xetra
	$boerse_id_[7] =    8 ;Fondsgesellschaft
	$boerse_id_[8] =   12 ;Xetra
	$boerse_id_[9] =   16 ;L&S_RT
	$boerse_id_[10] =  17 ;Berlin
	$boerse_id_[11] =  20 ;Indizes_Schweiz
	$boerse_id_[12] =  21 ;NYSE
	$boerse_id_[13] =  23 ;Indizes_Nikkei
	$boerse_id_[14] =  24 ;Indizes_Hang_Seng
	$boerse_id_[15] =  30 ;RBS_Indikation
	$boerse_id_[16] =  32 ;DB_Indikation_Devisen
	$boerse_id_[17] =  33 ;Rohstoffe_Indikation
	$boerse_id_[18] =  37 ;DB_Indikation_Indizes
	$boerse_id_[19] =  39 ;Frankfurt_Zertifikate
	$boerse_id_[20] =  40 ;Nasdaq
	$boerse_id_[21] =  41 ;AMEX
	$boerse_id_[22] =  47 ;Stuttgart(EUWAX)			*** 	1. Stuttgart   = 47
	$boerse_id_[23] =  48 ;EZB
	$boerse_id_[24] =  58 ;Wien
	$boerse_id_[25] =  60 ;Wien_Opt.&Fut.
	$boerse_id_[26] =  71 ;Indizes_US
	$boerse_id_[27] =  72 ;Indizes_Nasdaq
	$boerse_id_[28] =  77 ;Indizes_Boerse_Wien
	$boerse_id_[29] =  83 ;Nasdaq_OTC_Other
	$boerse_id_[30] = 102 ;HypoVereinsbank
	$boerse_id_[31] = 123 ;SIX_Swiss_Exchange
	$boerse_id_[32] = 126 ;DB_Indikation_Rohstoffe
	$boerse_id_[33] = 130 ;FXCM
	$boerse_id_[34] = 131 ;Tradegate
	$boerse_id_[35] = 136 ;pro_aurum
	$boerse_id_[36] = 162 ;Quotrix
	$boerse_id_[37] = 172 ;ARIVA_Indikation_Rohstoffe
	$boerse_id_[38] = 173 ;ARIVA_Indikation_Indizes
	$boerse_id_[39] = 174 ;ARIVA_Indikation_Devisen
	$boerse_id_[40] = 188 ;CMC_Markets
	$boerse_id_[41] = 207 ;Gettex
Else
	Local $boerse_id_[9]
	$boerse_id_[0] = 130 ;FXCM
	$boerse_id_[1] = 163 ;Bitcoin.de
	$boerse_id_[2] = 167 ;Bitstamp
	$boerse_id_[3] = 190 ;Binance
	$boerse_id_[4] = 192 ;Bitfinex
	$boerse_id_[5] = 194 ;Bittrex
	$boerse_id_[6] = 199 ;HitBTC
	$boerse_id_[7] = 201 ;Kraken
	$boerse_id_[8] = 204 ;P2PB2B
EndIf
1 Like

Hallo. Ich suche irgendeinen breit gestreuten Index (am liebsten MSCI World, oder eben etwas vergleichbares), der historische Kurse ab 1975 oder 1965 liefern kann. Was ich mir so bei “historisch” ergoogelt habe fängt bei 2008 oder so meistens an. Jedes Jahr davor wäre für mich ein Gewinn :slight_smile:
Da es um eine Simulation geht, ist mir die Währung auch egal, …

Viele Grüße
Juergen

Ich finde das Topic gerade nicht, aber es gab den Link/Code um sich bei MSCI die Kurse der Indices direkt über JSON zu laden. Für die historischen Daten müsstest du auf die Webseite (End of day index data search - MSCI) gehen und dir die alten Kurse erst mal als .csv laden. Ich glaube für 5 Jahres Zeiträume gibt MSCI dir tägliche Kurse, das ist also ein klein wenig Arbeit ab 1975. Wenn dir Monatskurse reichen, kannst du den Import auch in einem Stück machen.

1 Like

Vielen Dank. Hier kommt man bis 1997…
null Invalid Parameter end_date : '19730306. Calculation date cannot be earlier than 19970101

Zumindest ich mit meinen Kenntnissen.
Ich hab mir von Hand die Excel Tabelle runtergeladen, da kommt man auch bis dahin. Davor dann monatsweise. Aber ich bin nun soweit, dass mir für die Simulation “monatsweise” auch reicht. Danke für Deine Mühen.
Viele Grüße
Juergen