Zum Inhalt springen
mc-fly

Aktienkurse im Excel automatisch aktualisieren

Empfohlene Beiträge

ChuckysEnkel
· bearbeitet von ChuckysEnkel
On 10/20/2023 at 10:39 AM, Oli Garch said:

Einzig =WEBDIENST("https://query1.finance.yahoo.com/v7/finance/download/DTE.DE") mit dem Ergebnis der Werte von  "Date,Open,High,Low,Close,Adj Close,Volume" scheint noch zu funktionieren.

Sry, da bin ich nicht Excel-bewandert genug--- wie würde ich das jetzt in einer Exceltabelle entsprechend umgesetzt kriegen, so dass in A1 z.B. "SAP.DE" steht und B1, C1, D1 entsprechend nacheinander Date,Open,High,Low,Close,Adj Close,Volume usw.? 

Edit: Tja, Ausfall hält leider an... -_-

Diesen Beitrag teilen


Link zum Beitrag
UnHombre
vor 45 Minuten von ChuckysEnkel:

Sry, da bin ich nicht Excel-bewandert genug--- wie würde ich das jetzt in einer Exceltabelle entsprechend umgesetzt kriegen, so dass in A1 z.B. "SAP.DE" steht und B1, C1, D1 entsprechend nacheinander Date,Open,High,Low,Close,Adj Close,Volume usw.? 

Edit: Tja, Ausfall hält leider an... -_-

 

Da geht es mir leider ähnlich. Wenn ich

 

=WEBDIENST("https://query1.finance.yahoo.com/v7/finance/download/DTE.DE")

 

in eine Excel-Zelle eintrage, bekomme ich die Werte der Telekom in folgender Form:

 

"Date,Open,High,Low,Close,Adj Close,Volume 2023-10-20,117.349998,117.650002,115.599998,115.599998,115.599998,51520"

 

Das müsste natürlich noch aufbereitet werden.

 

Der Weg via Makro, wie er weiter oben in einer Excel-Vorlage angeben ist funktioniert leider weiterhin nicht. Dabei hat bei mir unter Excel 2019 in der Zeile

 

    objXML.Open "GET", "https://query1.finance.yahoo.com/v6/finance/quoteSummary/" & strSymbol & "?modules=" & strModul, False

 

nur V6 funktioniert.

 

Ein Danke an aller Experten, die sich hier engagieren...

Diesen Beitrag teilen


Link zum Beitrag
Oli Garch

Es gibt da sicher immer mehrere Methoden. Ich mache das, indem ich die Kommas im Ergebnisstring zähle und deren Position ermittele. Dann würde die Formel für 'close' so aussehen:

=WECHSELN(TEIL(K1;FINDEN("#";WECHSELN(K1;",";"#";10))+1;FINDEN(",";TEIL(K1;FINDEN("#";WECHSELN(K1;",";"#";10))+1;20))-1);".";",")/1

Erläuterung: der Wert für 'close' steht hinter dem 10. Komma. Das ist die 10, die in der Formel 2 mal auftaucht.
Für den Wert 'low', der hinter dem 9. Komma steht, muss in der obigen Formel nur 2 mal die 10 durch 9 ersetzt werden.
Mit Open, High und Adj. Close kann man analog verfahren (einfach die Kommas zählen).
Da aber zwischen dem Wort 'Volume' und dem Datum kein Komma steht, muss bei der Formel für das Datum die Länge des Wortes (Volume) zur Position des davorstehenden Kommas hinzugezählt werden.
Bisschen kompliziert. Deshalb hier die Formel für das Datum:
=WECHSELN(TEIL(K1;FINDEN("#";WECHSELN(K1;",";"#";6))+7;FINDEN(",";TEIL(K1;FINDEN("#";WECHSELN(K1;",";"#";6))+7;20))-1);".";",")
Nächste Ausnahme 'Volume', da hinter dem Volume-Wert kein Komma mehr steht, diese Formel verwenden:
=TEIL(K1;FINDEN("#";WECHSELN(K1;",";"#";12))+1;LÄNGE(K1)-FINDEN("#";WECHSELN(K1;",";"#";12))+1)/1

Die Formeln funktionieren, wenn die Daten mit der Formel:
=WEBDIENST("https://query1.finance.yahoo.com/v7/finance/download/"&A1)
abgerufen werden, diese Formel in der Zelle K1 und das Symbol für das Wertpapier in Zelle A1 steht.

 

Wenn sich Fehler eingeschlichen haben, bitte melden. Ebenso, wenn etwas unverständlich ist.

Diesen Beitrag teilen


Link zum Beitrag
enormo
vor 1 Stunde von Oli Garch:

Es gibt da sicher immer mehrere Methoden. Ich mache das, indem ich die Kommas im Ergebnisstring zähle und deren Position ermittele. Dann würde die Formel für 'close' so aussehen:

=WECHSELN(TEIL(K1;FINDEN("#";WECHSELN(K1;",";"#";10))+1;FINDEN(",";TEIL(K1;FINDEN("#";WECHSELN(K1;",";"#";10))+1;20))-1);".";",")/1

Erläuterung: der Wert für 'close' steht hinter dem 10. Komma. Das ist die 10, die in der Formel 2 mal auftaucht.
Für den Wert 'low', der hinter dem 9. Komma steht, muss in der obigen Formel nur 2 mal die 10 durch 9 ersetzt werden.
Mit Open, High und Adj. Close kann man analog verfahren (einfach die Kommas zählen).
Da aber zwischen dem Wort 'Volume' und dem Datum kein Komma steht, muss bei der Formel für das Datum die Länge des Wortes (Volume) zur Position des davorstehenden Kommas hinzugezählt werden.
Bisschen kompliziert. Deshalb hier die Formel für das Datum:
=WECHSELN(TEIL(K1;FINDEN("#";WECHSELN(K1;",";"#";6))+7;FINDEN(",";TEIL(K1;FINDEN("#";WECHSELN(K1;",";"#";6))+7;20))-1);".";",")
Nächste Ausnahme 'Volume', da hinter dem Volume-Wert kein Komma mehr steht, diese Formel verwenden:
=TEIL(K1;FINDEN("#";WECHSELN(K1;",";"#";12))+1;LÄNGE(K1)-FINDEN("#";WECHSELN(K1;",";"#";12))+1)/1

Die Formeln funktionieren, wenn die Daten mit der Formel:
=WEBDIENST("https://query1.finance.yahoo.com/v7/finance/download/"&A1)
abgerufen werden, diese Formel in der Zelle K1 und das Symbol für das Wertpapier in Zelle A1 steht.

 

Wenn sich Fehler eingeschlichen haben, bitte melden. Ebenso, wenn etwas unverständlich ist.

Vielen Dank. Funktioniert wie von Dir beschrieben.
Drücke uns allen die Daumen, dass es nur eine Übergangslösung ist.....:)

Diesen Beitrag teilen


Link zum Beitrag
enormo
Am 21.10.2023 um 19:46 von enormo:

Vielen Dank. Funktioniert wie von Dir beschrieben.
Drücke uns allen die Daumen, dass es nur eine Übergangslösung ist.....:)

falls es doch nicht bei einer Übergangslösung bleiben sollte, habt ihr einen Tipp für mich, wie ich die Dividendenzahlung des letzten Kalenderjahres für einen Wert abrufen könnte?

 

Danke!

Diesen Beitrag teilen


Link zum Beitrag
Oli Garch
· bearbeitet von Oli Garch
Fehler in der zweiten Funktion beseitigt.
Am 23.10.2023 um 11:04 von enormo:

einen Tipp für mich, wie ich die Dividendenzahlung des letzten Kalenderjahres für einen Wert abrufen könnte?

Mit einem Makro den Wert aus einer Internetseite auszulesen gibt es sicher einige Möglichkeiten. Das wird aber bei vielen Werten etwas langsam. Die betreffende Internetseite muss ja immer wieder vollständig geladen werden. Das Herunterladen von Daten im csv-Format, wie es bisher bei Yahoo möglich war oder im json-Format, geht da wesentlich schneller.

Falls hier jemand mitliest, dem solch eine Quelle (frei zugänglich) bekannt ist, wäre das sehr hilfreich.

Ich kenne nur die api von Onvista und ING, da ist die Dividende aber nicht enthalten.

 

Bis dahin hier mal zwei Makro-Varianten für das Auslesen der Dividende von Yahoo. Einmal für den absoluten Wert und einmal für die Div-Rendite in Prozent.

 

Public Function yDiv(Ticker As String) As Double
Dim strResponse As String
Dim XML As Object
On Error GoTo Fehler
Set XML = CreateObject("MSXML2.ServerXMLHTTP")
    XML.Open "GET", "https://de.finance.yahoo.com/quote/" & Ticker & "/key-statistics?", False
XML.send
strResponse = XML.ResponseText
strResponse = Split(strResponse, "Jahresdividendensatz")(1)
strResponse = Mid(strResponse, InStr(strResponse, "60px") + 7, 20)
strResponse = Left(strResponse, InStr(strResponse, "<") - 1)
yDiv = CDbl(strResponse)
Set XML = Nothing
Exit Function
Fehler:
    yDiv = 0
    Set XML = Nothing
End Function

 

Public Function yDivP(Ticker As String) As Double
Dim strResponse As String
Dim XML As Object
On Error GoTo Fehler
Set XML = CreateObject("MSXML2.ServerXMLHTTP")
    XML.Open "GET", "https://de.finance.yahoo.com/quote/" & Ticker & "/key-statistics?", False
XML.send
strResponse = XML.ResponseText
strResponse = Split(strResponse, "Jahresdividendenertrag")(2)
strResponse = Mid(strResponse, InStr(strResponse, "60px") + 7, 20)
strResponse = Left(strResponse, InStr(strResponse, "%") - 1)
yDivP = CDbl(strResponse) / 100
Set XML = Nothing
Exit Function
Fehler:
    yDivP = 0
    Set XML = Nothing
End Function
 

Eine oder beide Funktionen in ein VBA-Modul kopieren. In der Tabelle die Funktion mit =yDiv(A1) bzw. =yDivP(A1) aufrufen. Das Wertpapiersymbol steht in diesem Fall in Zelle A1.

Diesen Beitrag teilen


Link zum Beitrag
enormo
· bearbeitet von enormo
falsche Datei war im Upload
vor 5 Stunden von Oli Garch:

Mit einem Makro den Wert aus einer Internetseite auszulesen gibt es sicher einige Möglichkeiten. Das wird aber bei vielen Werten etwas langsam. Die betreffende Internetseite muss ja immer wieder vollständig geladen werden. Das Herunterladen von Daten im csv-Format, wie es bisher bei Yahoo möglich war oder im json-Format, geht da wesentlich schneller.

Falls hier jemand mitliest, dem solch eine Quelle (frei zugänglich) bekannt ist, wäre das sehr hilfreich.

Ich kenne nur die api von Onvista und ING, da ist die Dividende aber nicht enthalten.

 

Bis dahin hier mal zwei Makro-Varianten für das Auslesen der Dividende von Yahoo. Einmal für den absoluten Wert und einmal für die Div-Rendite in Prozent.

 

Public Function yDiv(Ticker As String) As Double
Dim strResponse As String
Dim XML As Object
On Error GoTo Fehler
Set XML = CreateObject("MSXML2.ServerXMLHTTP")
    XML.Open "GET", "https://de.finance.yahoo.com/quote/" & Ticker & "/key-statistics?", False
XML.send
strResponse = XML.ResponseText
strResponse = Split(strResponse, "Jahresdividendensatz")(1)
strResponse = Mid(strResponse, InStr(strResponse, "60px") + 7, 20)
strResponse = Left(strResponse, InStr(strResponse, "<") - 1)
yDiv = CDbl(strResponse)
Set XML = Nothing
Exit Function
Fehler:
    yDiv = 0
    Set XML = Nothing
End Function

 

Public Function yDivP(Ticker As String) As Double
Dim strResponse As String
Dim XML As Object
On Error GoTo Fehler
Set XML = CreateObject("MSXML2.ServerXMLHTTP")
    XML.Open "GET", "https://de.finance.yahoo.com/quote/" & Ticker & "/key-statistics?", False
XML.send
strResponse = XML.ResponseText
strResponse = Split(strResponse, "Jahresdividendenertrag")(1)
strResponse = Mid(strResponse, InStr(strResponse, "60px") + 7, 20)
strResponse = Left(strResponse, InStr(strResponse, "%") - 1)
yDivP = CDbl(strResponse) / 100
Set XML = Nothing
Exit Function
Fehler:
    yDivP = 0
    Set XML = Nothing
End Function
 

Eine oder beide Funktionen in ein VBA-Modul kopieren. In der Tabelle die Funktion mit =yDiv(A1) bzw. =yDivP(A1) aufrufen. Das Wertpapiersymbol steht in diesem Fall in Zelle A1.

Wieder einmal ein ganz herzliches Dankeschön für Deine Unterstützung. Leider konnte ich Deine Hinweise noch nicht richtig umsetzen.

Könntest Du bitte auf beigefügte Datei mal einen Blick werfen? Vermutlich hat in meinem Fall das Problem wieder vor dem Bildschirm gesessen... :)

Besten Dank.

Viele Grüße

 

Edit: Im ersten upload hatte ich versehentlich nen falschen Zellbezug.... Fehlerausgabe allerdings weiterhin gegeben.

 

Mappe1.xlsm

Diesen Beitrag teilen


Link zum Beitrag
Oli Garch
vor 37 Minuten von enormo:

Leider konnte ich Deine Hinweise noch nicht richtig umsetzen.

Ich vermute mal, du hast die Funktion an den faschen Ort kopiert. Du musst die Funktion in ein neues vba-Modul kopieren. Dann dürfte es funktionieren:

- mit STRG-F11 VBA-Editor starten

- in dem Projekt Rechtsklick

- Einfügen - Modul und die Funktion da hineinkopieren

Um die Tabelle zu aktualisieren: STRG - ALT - F9, dauert aber etwas.

Diesen Beitrag teilen


Link zum Beitrag
enormo
vor 23 Stunden von Oli Garch:

Ich vermute mal, du hast die Funktion an den faschen Ort kopiert. Du musst die Funktion in ein neues vba-Modul kopieren. Dann dürfte es funktionieren:

- mit STRG-F11 VBA-Editor starten

- in dem Projekt Rechtsklick

- Einfügen - Modul und die Funktion da hineinkopieren

Um die Tabelle zu aktualisieren: STRG - ALT - F9, dauert aber etwas.

Besten Dank. Ich hatte das wohl nicht richtig umgesetzt.

 

Nun bin ich Dank Deiner Hilfe einen Schritt weiter, aber der Wert passt nicht so ganz - glaube ich zumindest ;).

 

Am Beispiel BASF - Ticker BAS.DE unter https://de.finance.yahoo.com/quote/BAS.DE/key-statistics?p=BAS.DE ist "Erwartete Jahresdividendenrate" und "Verg. Jahresdividendensatz" abrufbar.

Mein Interesse liegt an dem erwarteten Wert.

 

Das Makro gibt mir nun einen Wert von 0,0831 aus (vgl. Anlage). Tatsächlich müssten es 3,40 sein. Ist das ein Formatierungsthema oder passt etwas an dem Modul nicht? In dem Modul ist von "Jahresdividendenertrag" (und nicht ...rate) die Rede. Daher meine Frage.

Herzlichen Dank!!

Mappe1.xlsm

Diesen Beitrag teilen


Link zum Beitrag
Oli Garch

Hallo @enormo

Die beiden Makros aus Beitrag #832 geben die im letzten Jahr gezahlte Dividende wider: yDiv() den Betrag und yDivP() die Dividendenrendite.

Für die von dir benötigten Zukunftswerte sind nur kleine Änderungen nötig. Und da ist mir doch gleich ein kleiner Fehler aufgefallen, der bewirkt, das bei yDivP die erwartete Dividendenrendite ausgegeben wird. Deshalb hier noch einmal alle vier Varianten von vergangenen und zukünftigen Dividenden und Dividendenrenditen mit neuen Funktionsbezeichnungen: 

yDivV() - Vergangener Jahresdividendenbetrag

yDivE() - Erwarteter Jahresdividendenbetrag

yDivRV() - Vergangene Dividendenrendite

yDivRE() - Erwartete Dividendenrendite

Und damit der ganze Beitrag hier nicht unendlich lang wird alles zum herunterladen als txt.

Und zu dem Problem der Dividendenrendite von 0,0831 kann ich nur sagen, was Bill Gates auch sagen würde: "it's not a bug it's a feature".

Der richtige Wert wird angezeigt, wenn die Zelle als Prozentwert formatiert ist (Nachkommastellen einstellen). Wenn du das Prozentzeichen da nicht magst, musst du in Zeile 12 des Makros das " /100 " löschen.

 

 

yDividende.txt

Diesen Beitrag teilen


Link zum Beitrag
enormo
Gerade eben von Oli Garch:

Hallo @enormo

Die beiden Makros aus Beitrag #832 geben die im letzten Jahr gezahlte Dividende wider: yDiv() den Betrag und yDivP() die Dividendenrendite.

Für die von dir benötigten Zukunftswerte sind nur kleine Änderungen nötig. Und da ist mir doch gleich ein kleiner Fehler aufgefallen, der bewirkt, das bei yDivP die erwartete Dividendenrendite ausgegeben wird. Deshalb hier noch einmal alle vier Varianten von vergangenen und zukünftigen Dividenden und Dividendenrenditen mit neuen Funktionsbezeichnungen: 

yDivV() - Vergangener Jahresdividendenbetrag

yDivE() - Erwarteter Jahresdividendenbetrag

yDivRV() - Vergangene Dividendenrendite

yDivRE() - Erwartete Dividendenrendite

Und damit der ganze Beitrag hier nicht unendlich lang wird alles zum herunterladen als txt.

Und zu dem Problem der Dividendenrendite von 0,0831 kann ich nur sagen, was Bill Gates auch sagen würde: "it's not a bug it's a feature".

Der richtige Wert wird angezeigt, wenn die Zelle als Prozentwert formatiert ist (Nachkommastellen einstellen). Wenn du das Prozentzeichen da nicht magst, musst du in Zeile 12 des Makros das " /100 " löschen.

 

 

yDividende.txt 2 kB · 6 Downloads

perfekt - funktioniert einwandfrei - ganz herzlichen Dank!!!!!

Diesen Beitrag teilen


Link zum Beitrag
UdonThani
Am 21.10.2023 um 17:47 von Oli Garch:

Wenn sich Fehler eingeschlichen haben, bitte melden. Ebenso, wenn etwas unverständlich ist.

 

Das Datum und den Close Kurs habe ich dank deiner Beschreibung hinbekommen - vielen Dank dafür. Die Chance des Uhrzeit des Börsenschlusses und den Vortageskurs mittels Formel hinzubekommen gibt es dann aktuell wohl nicht? Falls nicht, könntest du mir dann mit der Formel für open weiterhelfen, die würde dem ja noch am nächsten kommen, dann würde ich meine Tabelle entsprechend umbauen.

 

Diesen Beitrag teilen


Link zum Beitrag
Oli Garch
· bearbeitet von Oli Garch
Fehler in Formel beseitigt
vor 3 Stunden von UdonThani:

Die Chance des Uhrzeit des Börsenschlusses und den Vortageskurs mittels Formel hinzubekommen gibt es dann aktuell wohl nicht?

irgendwas geht immer:

Der verwendete Yahoo-Downladlink
https://query1.finance.yahoo.com/v7/finance/download/DTE.DE
ist ja eigentlich für historische Kurse gedacht und den Link kann man mit Anfangs- und Enddatum ergänzen so dass ich zumindest auch den Vortageskurs auslesen könnte. Das ist aber recht kompliziert, da Yahoo nur Datumsangaben im Unix-Zeitcode akzeptiert. Dafür würde ich dann für die beiden Datumsangaben jeweils noch eine Hilfsspalte in die Tabelle einbauen, in der das normale Datum in Unix-Datum umgewandelt wird. Aber wer will das schon. Das heben wir uns auf, falls irgendwann gar nichts mehr geht.
Es gibt da eine weitere URL, die noch funktioniert. Aus der lassen sich:
regularMarketPrice (aktueller Kurs)
chartPreviousClose (Vortagesschlußkurs)
regularMarketTime (Datum und Uhrzeit des aktuellen Kurses)
auslesen, also auch mit Uhrzeit.
Kurs:
=WECHSELN(TEIL(J3;SUCHEN("regularMarketPrice";J3)+20;SUCHEN(",";TEIL(J3;SUCHEN("regularMarketPrice";J3)+20;20))-1);".";",")/1
Kurs Vortag:
=WECHSELN(TEIL(J3;SUCHEN("chartPreviousClose";J3)+20;SUCHEN(",";TEIL(J3;SUCHEN("chartPreviousClose";J3)+20;20))-1);".";",")/1
Datum:
=TEIL(J3;SUCHEN("regularMarketTime";J3)+19;SUCHEN(",";TEIL(J3;SUCHEN("regularMarketTime";J3)+19;20))-1)/86400+25569
Uhrzeit:
=((TEIL(J3;SUCHEN("regularMarketTime";J3)+19;SUCHEN(",";TEIL(J3;SUCHEN("regularMarketTime";J3)+19;20))-1)+WENN(UND(HEUTE()>=(DATUM(JAHR(HEUTE());4;0)-WOCHENTAG(DATUM(JAHR(HEUTE());4;0))+1);HEUTE()<=(DATUM(JAHR(HEUTE());11;0)-WOCHENTAG(DATUM(JAHR(HEUTE());11;0))+1));7200;3600))/86400)+25569
Für Datum und Uhrzeit die Zellen entsprechend formatieren!

Voraussetzung für diese Formeln: In Zelle J3 steht folgendes:
=WEBDIENST("https://query1.finance.yahoo.com/v7/finance/chart/"&E3&"?&interval=1d&range=1d") 
hier wiederum ist das Wertpapiersymbol in Zelle E3 erforderlich.  (Formel funktioniert auch mit query2 und v8)
J3 und E3 den eigenen Erfordernissen anpassen!
Die Formel für die Uhrzeit ist deshalb so lang geraten, weil ich einen Mechanismus eingebaut habe, der Sommer- und Winterzeit berücksichtigt.

Diesen Beitrag teilen


Link zum Beitrag
UdonThani
vor 26 Minuten von Oli Garch:

irgendwas geht immer:

 

Perfekt - hab ich schonmal erwähnt dass du echt super bist? Du hast mir mal wieder mein Template gerettet. Läuft jetzt alles wieder wie es sollte ;-)

Ich hoffe mal Yahoo verschont uns jetzt wieder eine zeitlang mit Änderungen....

Diesen Beitrag teilen


Link zum Beitrag
Oli Garch
vor 1 Stunde von UdonThani:

Perfekt

immer wieder gerne. Aber langsam gehen mit mir bei Yahoo die Optionen aus.

Diesen Beitrag teilen


Link zum Beitrag
ChuckysEnkel
On 11/4/2023 at 10:18 PM, Oli Garch said:

immer wieder gerne. Aber langsam gehen mit mir bei Yahoo die Optionen aus.

Mir wurde das auch langsam zu holprig, bin daher auf Excel 365 umgestiegen, da kann man "wie früher mal" Aktienkurse direkt im Programm abrufen. Und es wurden auch fast alle Kurse gefunden/abgerufen. Nur nicht alle Kryptowährungen (sondern nur die wichtigsten) aber naja. Mal sehen, wie "nachhaltig" das jetzt ist.

Diesen Beitrag teilen


Link zum Beitrag
UdonThani
vor 18 Minuten von ChuckysEnkel:

Mir wurde das auch langsam zu holprig, bin daher auf Excel 365 umgestiegen, da kann man "wie früher mal" Aktienkurse direkt im Programm abrufen. Und es wurden auch fast alle Kurse gefunden/abgerufen.


Office 365 habe ich auch - aber ich finde dort kaum ETF Kurse - daher der Umweg über Yahoo.

Diesen Beitrag teilen


Link zum Beitrag
MaexNRW

Denkt ihr, dass das kein temporäres Problem bei Yahoo ist, sondern es dauerhaft nicht mehr möglich sein wird, die Aktienkurse und viele weitere Werte abzufragen, wie wir es bisher immer mit Yahoo v7 (und höhere) getan haben?

Diesen Beitrag teilen


Link zum Beitrag
Oli Garch
vor 3 Stunden von MaexNRW:

Denkt ihr, dass das kein temporäres Problem bei Yahoo ist, sondern es dauerhaft nicht mehr möglich sein wird, die Aktienkurse und viele weitere Werte abzufragen, wie wir es bisher immer mit Yahoo v7 (und höhere) getan haben?

das weiß wohl keiner, aber da es jetzt schon eine Weile so geht, sieht es eher schlecht aus.

Kurse und Vortageskurse gehen immerhin noch, wie unter #838 beschrieben.

Diesen Beitrag teilen


Link zum Beitrag
CK-ONE

Hallo zusammen,

 

bin ganz frisch hier im Forum und habe mich aufgrund dieses speziellen Threads angemeldet.

Endlich ein paar börseninteressierte Excel-Nerds und Excel-interessierte Börsen-Nerds.

Das Lesen in diesem Thread hat mich meinem Ziel ein gutes Stück weitergebracht, Bid- und Ask-Preise für Aktien von Tradegate auszulesen.

 

Vielleicht weiß jemand von Euch einen Rat, was das Scraping von Tradegate-Daten mit der folgenden Formel angeht:

=WENNFEHLER(WERT(LET(url;WEBDIENST("https://www.tradegate.de/orderbuch.php?isin="&B3);Anfang;FINDEN("bid";url)+5;Ende;FINDEN("</strong";url;Anfang);TEIL(url;Anfang;Ende-Anfang)));"")

Die Formel soll den Bid-Preis eines Wertpapiers abrufen.

Bei ETFs mit den Länderkürzeln IE, LU, FR und DE funktioniert das wunderbar.

Nicht jedoch bei ETFs mit vorangestelltem US.

Schlimmer noch: Es funktioniert generell nicht für Aktien.

 

Struktur und Umfang der HTML-Dateien sind allerdings weitgehend identisch.

Generell schaffe ich es nicht auch nur irgendwelche Zeichen aus diesen HTML-Seiten abzugreifen.

Ich frage mich, was ich hier übersehe(?).

 

Freue mich auf Vorschläge.

 

Viele Grüße,

Carsten

Diesen Beitrag teilen


Link zum Beitrag
Oli Garch
vor 58 Minuten von CK-ONE:

Ich frage mich, was ich hier übersehe(?).

es liegt vermutlich an der Länge des Textes, die die Funktion Webdienst zurückgibt, die ja bekanntlich auf 32767 Zeichen beschränkt ist.

Z. B. beträgt die Responsetext-Länge bei dem im Forum überaus beliebten IE00B3RBWM25 auch bekannt unter A1JX52 genau 32714 Zeichen und es funktioniert (gerade so).

Bei allen Aktien wird der Grenzwert scheinbar minimal überschritten.

Diesen Beitrag teilen


Link zum Beitrag
CK-ONE

Hallo Oli, danke Dir für die Antwort.

Das hatte ich auch schon vermutet.

 

Die optimale Lösung wäre eine HTML-basierte Webseite, die Bid und Ask von Tradegate anzeigt, sonst aber generell wenig Inhalte darstellt oder sogar eine abgespeckte Mobile Version hat.

Ist Dir (oder auch den anderen) so eine Seite bekannt? Noch habe ich selbst keine gefunden.

Diesen Beitrag teilen


Link zum Beitrag
Oli Garch
vor 13 Minuten von CK-ONE:

eine HTML-basierte Webseite, die Bid und Ask von Tradegate anzeigt

wird wohl schwer zu finden sein. Tradegate ist ja eigentlich auch schon recht minimalistisch.

LibreOffice Calk hat diese Begrenzung von Excel nicht. Da würde es funktionieren.

Auch in einem Googl-Sheet mit ImportXML läuft es.

Ansonsten in Excel mit einem VBA-Makro.

Diesen Beitrag teilen


Link zum Beitrag
CK-ONE

Habe gerade mal die Anzahl der Zeichen inkl. Leerzeichen von zwei tradegate.de-HTML-Codes einer Aktie (nicht per Excel-Webdienst abrufbar) und eines ETFs (per Excel-Webdienst abrufbar) in Word verglichen.

Bei der Aktie sind es 29.273 Zeichen, beim ETF 28.709 Zeichen.

Ich bilde mir ein, es muss noch an irgendetwas anderem liegen ...

Hm, aber woran könnte es noch liegen?

 

Leider kann ich nicht von Excel weg, weil ich dort ein komplexes Szenario mit etlichen Sheets aufgebaut habe. :/

Diesen Beitrag teilen


Link zum Beitrag
CK-ONE

Also https://12ft.io/ kann Webseiten-HTMLS automatisch kürzen.

Die zugehörige URL hat dann solch ein Format: https://12ft.io/proxy?q=https%3A%2F%2Fwww.tradegate.de%2Forderbuch.php%3Fisin%3D

 

Allerdings dauert das Kürzen einen Moment, bis endlich der HTML-Text dargestellt wird.

Und genau in dieser Zeit läuft dann die Webdienst-Anfrage von Excel ins Leere. Schade.

OK, noch krasser ist txtify.it

 

Was dort ausgeworfen wird, ist noch reduzierter, geradezu perfekt.

Noch dazu mit schnellen Servern. Geradezu ein Scraping-Traum. ^^

 

Allerdings ist der Nutzer das Problem:

Ich finde keinen Weg, daraus per Webservice in Excel die Daten auszulesen.

 

Beispiel:

https://txtify.it/https://www.tradegate.de/orderbuch.php?isin=MHY2106R1100

Diesen Beitrag teilen


Link zum Beitrag

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden

×
×
  • Neu erstellen...