Zum Inhalt springen
mc-fly

Aktienkurse im Excel automatisch aktualisieren

Empfohlene Beiträge

Oli Garch
vor 6 Stunden von CK-ONE:

Aus irgendeinem Grund bekomme ich aber mit der WEBDIENST-Funktion in Excel immer nur #WERT! heraus.

@CK-ONE

die CNN-api scheint diese Art der automatisierten Datenabfrage nicht zu mögen. Auch ein Versuch in einem Google-Sheet mit der Funktion importdata funktioniert nicht.

Ein minimalistisches VBA-Makro, das die Funktion Webdienst nachbildet, hat immerhin zu einer Datenausgabe geführt. Diese lautete: " I'm a teapot. You're a bot. " :'(

Wenn man an der richtigen Schraube dreht, bekommt man jedoch mit einem recht kurzen VBA-Makro die Daten geladen und der entsprechende Wert lässt sich herausfiletieren. Du müsstest allerdings dafür in Excel den Zugriff auf Makros aktivieren. Wenn du das willst, melde dich noch einmal.

Diesen Beitrag teilen


Link zum Beitrag
CK-ONE

Danke Dir. Das hatte ich befürchtet, dass es an so etwas liegen könnte.

Ich könnte mir vorstellen, dass es bei https://feargreedmeter.com/ weniger restriktiv zugeht.

Oder auch in der schmaleren Variante hier: https://feargreedmeter.com/fear-and-greed-index

Und hier: https://en.macromicro.me/charts/50108/cnn-fear-and-greed

 

Dort ist allerdings überall die ausgegeben Zeichenkette zu lang für Excel, wie es scheint. :/

Diesen Beitrag teilen


Link zum Beitrag
Oli Garch
vor 16 Stunden von CK-ONE:

Dort ist allerdings überall die ausgegeben Zeichenkette zu lang für Excel, wie es scheint.

So ist es. Da funktioniert es auch nur mit VBA-Makro oder mit dem oben erwähnten Python, von dem ich allerdings auch nichts verstehe.

Eine Möglichkeit, die Beschränkungen von Excel zu umgehen sehe ich vielleicht noch in einem Umweg über Googlesheets. Der geht so:

In google-drive eine neue Tabelle erstellen.

In Zelle A1 die Formel für den Index: =importxml("https://feargreedmeter.com/";"//*[@class='text-center text-4xl font-semibold mb-1 text-white']") eingeben.

Die Google-Tabelle freigeben (für jeden, der über den Link verfügt).

Lässt sich natürlich auch noch formatieren wie hier:

image.png.51f5d6793f19998328ac8732bcbe04f4.pngimage.png.6905e6a466caf4f4e8ae6e5daac6969f.png

Für die Übernahme in Excel ist das aber uninteressant.

Jetzt der Excel-Import:

Adresse der Google-Tabelle kopieren

Am Ende des kopierten Links eventuell vorhandenes Anhängsel „/edit?gid=0#gid=0“ entfernen.

Dafür „/export?format=tsv“ anhängen.

Das Ganze in die Webdienst-Funktion einfügen etwa so:

=WERT(WEBDIENST("https://docs.google.com/spreadsheets/d/1FQajOnI7l_..../export?format=tsv"))

Möchte man das Ganze in der Google-Tabelle nicht in Zelle A1 positionieren, müssen einige vorangestellte Zeichen abgetrennt werden:

=WERT(RECHTS(WEBDIENST("https://docs.google.com/spreadshee_..../export?format=tsv"));2)

Sollte es noch nicht funktionieren, dann noch einmal die Freigabe in Google-Drive überprüfen.

Diesen Beitrag teilen


Link zum Beitrag
CK-ONE

Oli Garch, das ist der Hammer - 1000. Dank!

Ich finde, das ist eine sehr elegante Lösung, die wirklich fantastisch funktioniert.

 

Ich denke, ich werde sie an der einen oder anderen Stelle wieder und wieder einsetzen. :))))

Diesen Beitrag teilen


Link zum Beitrag
StefanS

Moin!

Ich würde auch gerne alle Kurse ins Excel lesen. Bei den Aktien funktioniert das auch wunderbar mit dem Datentyp "Aktien".

Aber wie kann ich das bei den Derivaten machen? Ich hatte gerade dieses Thema nach "Optionsscheinen" durchsucht und leider keinen Treffer gefunden. Gibt es dazu denn auch eine Möglichkeit?

Angeblich soll z.B. bei den Optionsscheinen von HSBC die WKN identisch sein mit dem Ticker-Symbol, aber damit komme ich dann dennoch nicht weiter.

Ich möchte auch nicht unbedingt ein weiteres Sheet oder noch eine Tabelle haben, sondern einfach nur den Geld-Kurs (oder auch mal den Brief-Kurs) ohne weitere Informationen anzeigen lassen.

Geht denn sowas?

Gruß

Stefan

Diesen Beitrag teilen


Link zum Beitrag
Oli Garch

Poste mal eins, zwei WKN oder ISIN als Beispiel, dann schauen wir mal.

Diesen Beitrag teilen


Link zum Beitrag
StefanS

HS2SNW und SU0XKZ zum Beispiel

Diesen Beitrag teilen


Link zum Beitrag
Oli Garch

Die Wertpapier-api der ING würde sich wohl eignen, wenn es nicht zu viele Abrufe sind.
Funktioniert nur mit ISIN!

Formel für "bid":
=WECHSELN(TEIL(WEBDIENST("https://component-api.wertpapiere.ing.de/api/v1/components/instrumentheader/"&A1);FINDEN("bid";WEBDIENST("https://component-api.wertpapiere.ing.de/api/v1/components/instrumentheader/"&A1))+5;FINDEN(",";TEIL(WEBDIENST("https://component-api.wertpapiere.ing.de/api/v1/components/instrumentheader/"&A1);FINDEN("bid";WEBDIENST("https://component-api.wertpapiere.ing.de/api/v1/components/instrumentheader/"&A1))+5;20))-1);".";",")/1

Formel für "ask":
=WECHSELN(TEIL(WEBDIENST("https://component-api.wertpapiere.ing.de/api/v1/components/instrumentheader/"&A1);FINDEN("ask";WEBDIENST("https://component-api.wertpapiere.ing.de/api/v1/components/instrumentheader/"&A1))+5;FINDEN(",";TEIL(WEBDIENST("https://component-api.wertpapiere.ing.de/api/v1/components/instrumentheader/"&A1);FINDEN("ask";WEBDIENST("https://component-api.wertpapiere.ing.de/api/v1/components/instrumentheader/"&A1))+5;20))-1);".";",")/1

Hier steht die ISIN in Zelle A1 und muss für die eigene Tabelle angepasst werden. Eventuell Ersetzen-Funktion verwenden, da in jeder Formel 4 mal vorhanden. Oder gleich die ISIN einbauen. Also statt /"&A1 dann /DE000SU0XKZ1".

Diesen Beitrag teilen


Link zum Beitrag
StefanS

Genial! Das sieht gut aus!

Sind so 20 Abrufe. Geht das noch?

Und wie oft werden die Kurse aktualisiert, bzw. wie?

Vielen Dank!!

Diesen Beitrag teilen


Link zum Beitrag
Oli Garch

Das wurde hier im Thread schon thematisiert. Der Datenanbieter ist sicherlich nicht sehr erfreut, wenn die api allzu sehr belastet wird. Die hier vorgestellte Formel ruft für jeden Kurs 4 mal die Daten ab. Das lässt sich natürlich durch Auslagerung der Funktion Webdienst auf nur noch einmal reduzieren.
Beispiel für bid:
Wir verschieben den Webienst-Abruf in die Zelle Z1 oder dahin wo er nicht stört und tragen dort die Funktion ein:
=WEBDIENST("https://component-api.wertpapiere.ing.de/api/v1/components/instrumentheader/"&A1)   ' in A1 steht die ISIN
Da, wo der bid-Kurs stehen soll, kommt diese Formel:
=WECHSELN(TEIL(Z1;FINDEN("bid";Z1)+5;FINDEN(",";TEIL(Z1;FINDEN("bid";Z1)+5;20))-1);".";",")/1
Für ask gilt dann:
=WECHSELN(TEIL(Z1;FINDEN("ask";Z1)+5;FINDEN(",";TEIL(Z1;FINDEN("ask";Z1)+5;20))-1);".";",")/1
Also brauchen wir statt 2x4 Abrufe nur noch einen.
Der Vorteil ist ja auch, das sich die Tabelle viel schneller aktualisiert.

Ach ja, Aktualisierung mit: Strg - Alt - F9

Das Ganze lässt sich auch noch als VBA-Makro realisieren, das wollen aber viele nicht.

Diesen Beitrag teilen


Link zum Beitrag
StefanS

Vielen Dank! Das funktioniert hervorragend!!

Diesen Beitrag teilen


Link zum Beitrag
CK-ONE
· bearbeitet von CK-ONE
Am 26.9.2024 um 23:24 von Oli Garch:

@CK-ONE

die CNN-api scheint diese Art der automatisierten Datenabfrage nicht zu mögen. Auch ein Versuch in einem Google-Sheet mit der Funktion importdata funktioniert nicht.

Ein minimalistisches VBA-Makro, das die Funktion Webdienst nachbildet, hat immerhin zu einer Datenausgabe geführt. Diese lautete: " I'm a teapot. You're a bot. " :'(

Wenn man an der richtigen Schraube dreht, bekommt man jedoch mit einem recht kurzen VBA-Makro die Daten geladen und der entsprechende Wert lässt sich herausfiletieren. Du müsstest allerdings dafür in Excel den Zugriff auf Makros aktivieren. Wenn du das willst, melde dich noch einmal.

Habe es jetzt tatsächlich doch per VBA-Makro gelöst.

Wer den Gold Fear & Greed-Index implementieren möchte, mit diesem VBA-Code geht es:

 

Option Explicit

Function GetFearGreedIndex() As String
    Dim xmlHttp As Object
    Dim html As Object
    Dim fearGreedValue As String
    
    ' XMLHTTP-Objekt erstellen
    Set xmlHttp = CreateObject("MSXML2.XMLHTTP")
    
    ' Anfrage an die Webseite senden
    xmlHttp.Open "GET", "https://www.jmbullion.com/fear-greed-index/", False
    xmlHttp.send
    
    ' HTML-Dokument-Objekt erstellen
    Set html = CreateObject("htmlfile")
    html.body.innerHTML = xmlHttp.responseText
    
    ' nach dem Fear & Greed-Wert im HTML suchen
    Dim regex As Object
    Set regex = CreateObject("VBScript.RegExp")
    regex.Pattern = "chart-fear-greed-(\d+)\.png"
    regex.Global = False
    
    Dim matches As Object
    Set matches = regex.Execute(html.body.innerHTML)
    
    If matches.Count > 0 Then
        fearGreedValue = matches(0).SubMatches(0)
    Else
        fearGreedValue = "Nicht gefunden"
    End If
    
    ' Wert zurückgeben
    GetFearGreedIndex = fearGreedValue
End Function

In eine Excel-Zelle wird der Wert dann so gezogen: =WERT(GetFearGreedIndex())

Diesen Beitrag teilen


Link zum Beitrag
Oli Garch

Sehr interessant, besonders die Verwendung von RegExp. Das habe ich so noch nicht gekannt.

Doch der Wert von dieser Webseite bezieht sich wohl auf Gold?

Diesen Beitrag teilen


Link zum Beitrag
etf-friese
vor 1 Stunde von CK-ONE:

Wer den Gold Fear & Greed-Index implementieren möchte, mit diesem VBA-Code geht es:

Warum nicht einfach https://cdn.jmbullion.com/fearandgreed/fearandgreed.json nutzen?

Diesen Beitrag teilen


Link zum Beitrag
CK-ONE
Am 15.10.2024 um 19:51 von etf-friese:

Top! Das "Define the URL of the JSON resource" im Quelltext war mir glatt entgangen.

Diesen Beitrag teilen


Link zum Beitrag
CK-ONE
· bearbeitet von CK-ONE

Hallo zusammen!

 

Momentan suche ich eine Möglichkeit, irgendwo Bid- und Ask-Kurse von Bankhaus Scheich auszulesen.

Konkret geht es mir um eine Bitcoin-Referenz für den Handel via Trade Republic.

 

Leider finde ich da keine Quelle zum Auslesen.

In einer Scheich-News aus 2020 sehe ich, dass sie mit der Börse Stuttgart kooperieren.

Tatsächlich ist der Kurs ihres Krypto-Handelsplatzes BSDEX (verfügbar über deren BISON App [Link]) nah dran, aber eben nicht 1:1

 

Kennt jemand von Euch evtl. eine Quelle für Bid- und Ask-Kurse von Bankhaus Scheich?

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...