Zum Inhalt springen
mc-fly

Aktienkurse im Excel automatisch aktualisieren

Empfohlene Beiträge

Oli Garch

Es ist schon so, dass die Code-Längen das Problem ist.

Ein Ausweg wäre aber, die Kurse vom ING Direkthandel zu nehmen. Der läuft ja meiner Meinung nach über Tradegate.

=WEBDIENST("https://component-api.wertpapiere.ing.de/api/v1/components/charttool/"&D1)

in D1 steht die ISIN

"bid" wird dann so gefiltert:

=WECHSELN(TEIL(TEIL(N1;FINDEN("TGT";N1);250);FINDEN("bid";TEIL(N1;FINDEN("TGT";N1);250))+5;FINDEN(",";TEIL(TEIL(N1;FINDEN("TGT";N1);250);FINDEN("bid";TEIL(N1;FINDEN("TGT";N1);250))+5;50))-1);".";",")/1

Bedingung: in N1 steht die o. g. Webdienst-Formel.

für "ask": in der Filter-Formel "bid" zweimal durch "ask" ersetzen.

Alles blitzschnell, da nur Text geladen wird.

 

Diesen Beitrag teilen


Link zum Beitrag
CK-ONE

OMG, es funktioniert. :) 1.000 Dank!

 

Du hast Recht. Laut eigener Website werden Aktien und ETFs dort über Tradegate gehandelt, Fonds, Zertifikate und Hebelprodukte über Gettex.

[Quelle: https://www.ing.de/sparen-anlegen/direkt-depot/handelsplaetze/handelspartner/]

 

Und wenn ich stattdessen "ast" eingebe, habe ich auch noch den je aktuellen letzten Kurs.

Aktualisieren sich denn diese Werte, wenn ich per Str+Alt+F5 den Befehl "Alle aktualisieren" ausführe?

Kann es gerade nicht prüfen, weil die Handelszeiten "nur" bis 22 Uhr gehen.

 

Die Kirsche auf der Sahne wäre jetzt noch, wenn ich nur die ISIN eingeben müsste und auch der Name und der Ticker der Aktie in je einer Zelle abgerufen würden.

Beides finde ich leider in dem API-Text von ING nicht. Gibt es da noch einen Trick?

Diesen Beitrag teilen


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

Gibt es da noch einen Trick?

Ich persönlich verwende diese Adresse:
https://component-api.wertpapiere.ing.de/api/v1/components/instrumentheader/IE00B3RBWM25
Nur liefert die bei ETFs kein bid und ask, sondern nur price. Dafür sind WKN, ISIN u. Name enthalten.
Da ich es für mich nicht so genau brauche, aber immer die gleiche Formel verwenden möchte, habe ich beide Lösungen mit der "Wennfehler"-Funktion verknüpft. Also wenn "bid" einen Fehler erzeugt Ausgabe von "price".
"bid" finde ich so:
=WECHSELN(TEIL(R3;SUCHEN("#";WECHSELN(R3;",";"#";4))+7;FINDEN(",";TEIL(R3;SUCHEN("#";WECHSELN(R3;",";"#";4))+7;20))-1);".";",")/1
und "price" so:
=WECHSELN(TEIL(R3;SUCHEN("#";WECHSELN(R3;",";"#";2))+9;SUCHEN(",";TEIL(R3;SUCHEN("#";WECHSELN(R3;",";"#";2))+9;20))-1);".";",")/1
Wie ich aus deinem Anfangspost ersehe, bist du mit Office 365 unterwegs. Da bekommst du die Formeln sicher noch etwas eleganter hin. Mit dieser URL geht es aber schon wesentlich einfacher.

Da fällt mir gerade auf: Onvista hat eine ähnliche api. Scheint auch bid und ask zu liefern.
URL: https://api.onvista.de/api/v1/funds/ISIN:IE00B3RBWM25/snapshot?
Für Aktien in der URL stocks statt funds.
Für Tradegate alles was hinter _gat oder GAT steht.

Diesen Beitrag teilen


Link zum Beitrag
CK-ONE

Himmel, Du gibst ja sogar schon Antworten auf Fragen, die ich noch gar nicht gestellt habe. LOL

Ich wollte nämlich noch die Frage nachschießen, ob ich auch irgendwo an Intraday-Daten von LS-Exchange kommen kann.

Und was soll ich sagen: Die Onvista-API enthält genau diese und noch viel mehr!

 

So lassen sich bspw. in Excel hilfreiche Einblicke errechnen, wie das Verhältnis von aktuellem Volumen zum 4-Wochen-Volumen.

Das ermöglicht es, eine Einschätzung der aktuellen Handelsaktivität eins Stocks zu bekommen. 

Noch dazu alles komfortabel abrufbar per Textverkettung mit einer ISIN.

Ich werde das als nächstes mal richtig ausschlachten, testen und hier Feedback geben.

 

Deine ING-Formel habe ich mir von Chat GPT im Detail erläutern lassen.

Daraufhin konnte ich sie entsprechend anpassen und nun auch Volumen-Daten abrufen.

Für die Mitleser der Community, an das Tradegate-Volumen im bereits abgerufenen ING-API-Text kommt ihr so:

=WECHSELN(TEIL(TEIL(G8;FINDEN("TGT";G8);550);FINDEN("volume";TEIL(G8;FINDEN("TGT";G8);550))+8;FINDEN(",";TEIL(TEIL(G8;FINDEN("TGT";G8);550);FINDEN("volume";TEIL(G8;FINDEN("TGT";G8);550))+8;50))-1);".";",")/1)

Wobei die Zelle G8 den per Webservice heruntergeladenen ING-API-Text enthält. 

 

Oli, ich danke Dir jetzt schon ganz herzlich für deine fundierte Hilfe.

Diese Lösungen bedeuten für mich Next Level, um gut auf Daily- und Intraday-Marktbewegungen reagieren zu können und dadurch noch bessere Einstiege finden und profitablere Setups kreieren zu können.

 

Danke.

Diesen Beitrag teilen


Link zum Beitrag
Oli Garch

Vielen Dank für die Rückmeldung. Freut mich sehr, dass ich helfen konnte. Für den ein oder anderen hier im Forum ist es sicherlich auch interessant, wenn du hier weitere Möglichkeiten vorstellst, Daten zu filtern.

Um nochmal auf eine Frage bezüglich der Aktualisierung der Daten aus deinem vorletzten Beitrag zurückzukommen: du meintest sicherlich Strg+Alt+F9. Ja das geht so.

Diesen Beitrag teilen


Link zum Beitrag
CK-ONE

Schade, die Onvista-API gibt bei deutschen Stocks Werte für so viele Börsen aus, dass der per WEBDIENST ausgelesene Text leider zu lang ist. :(

Das heißt, die funktioniert Methode bei LS Exchange nur für ETFs und amerikanische Stocks. Und auch dort nicht für die Big Player wie AMD und größer.

 

Kennst Du evtl. noch eine Alternative Datenquelle für LS Exchange?

Diesen Beitrag teilen


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

Kennst Du evtl. noch eine Alternative Datenquelle für LS Exchange?

keine, die man mit der Excel-Funktion Webdienst abgreifen könnte.

Eine andere Möglichkeit wäre, die Funktion Webdienst durch ein kleines VBA-Makro nachzubilden. Diese selbstgemachte Funktion wäre zwar auch auf die 32767 Zeichen bei der Datenausgabe geschränkt, aber da lässt sich vorher ja jede Menge aussortieren, so dass es passt. So etwas hätte ich auch noch in der Schublade. Natürlich nur wenn du aus Sicherheitsgründen VBA-Makros nicht ausschließt.

Diesen Beitrag teilen


Link zum Beitrag
Coriolis

Kann jemand bitte noch die Formel für den Vortageskurs über das ING Webservice einstellen?

Danke vielmals!

Diesen Beitrag teilen


Link zum Beitrag
Oli Garch
vor 39 Minuten von Coriolis:

Kann jemand bitte noch die Formel für den Vortageskurs über das ING Webservice einstellen?

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

hier wird vorausgesetzt, dass in Zelle K1 die Webdienstformel steht, die lautet:

=WEBDIENST("https://component-api.wertpapiere.ing.de/api/v1/components/instrumentheader/"&C1)

diese setzt voraus, dass in Zelle C1 die ISIN des gesuchten Wertes steht.

In der ING-api läuft der Vortageskurs unter "close", wie man hier sehen kann:

{"id":608678,"name":"Vanguard FTSE All-World UCITS ETF - (USD) Dist","price":107.06,"close":106.98000000,"changePercent":0.0747803327724808375397270500,

Diesen Beitrag teilen


Link zum Beitrag
Coriolis
· bearbeitet von Coriolis

Danke vielmals, Oli Garch - funktioniert perfekt! :)

Diesen Beitrag teilen


Link zum Beitrag
CK-ONE

Wie es aussieht ergänzen sich die beiden APIs von Onvista und ING ganz gut, was die Abedeckung der Stocks angeht.

Nur Mega-Caps (für mich eh nich tinteressant) und absolute Exoten sind dort nicht per ISIN vertreten. Kann ich absolut mit leben.

 

Ich habe deshalb nun für beide API-Bezüge eigene Tabellenblätter eingerichtet, die die je spezifisch gebotenen Daten optimal ausnutzen.

 

Ein Übersichtsblatt zeigt per Balkendiagrammen für beide API-Sets auf einen Blick an, ob es am Handelstag Besonderheiten bei Spreads, Volumen u.a. gibt.

Funktioniert tadellos.

 

Danke nochmal bis hierhin Oli.

 

 

 

Diesen Beitrag teilen


Link zum Beitrag
Drengist

Irgendwie bekomme ich über Ariva nicht mehr den Kurs für meinen Geldmarktfonds DBX0AN.

 

Dieser Import liefert keinen Kurs mehr: =IMPORTXML("https://www.ariva.de/etf/db_x_trackers_ii_eonia_ucits_etf_1c";"//*[@itemprop='price']")

 

Bei Google Finance ist der Fonds garnicht auffindbar.

 

Könnt ihr eventuell helfen?

 

 

Diesen Beitrag teilen


Link zum Beitrag
Oli Garch

In einem anderen Thread hatten wir vor zwei Tagen schon einmal dieses Problem. Ersetze den XPath-Wert (den Teil hinter dem Semikolon) durch den Wert, wie er in dem anderen Thread angegeben ist. Das funktioniert auch mit deiner URL. Oder du übernimmst gleich alles von dort.

Diesen Beitrag teilen


Link zum Beitrag
Malvolio
vor 11 Stunden von Drengist:

Irgendwie bekomme ich über Ariva nicht mehr den Kurs für meinen Geldmarktfonds DBX0AN.

 

Dieser Import liefert keinen Kurs mehr: =IMPORTXML("https://www.ariva.de/etf/db_x_trackers_ii_eonia_ucits_etf_1c";"//*[@itemprop='price']")

 

Bei Google Finance ist der Fonds garnicht auffindbar.

 

Könnt ihr eventuell helfen?

 

 

Der ETF wird auf XETRA gehandelt (Ticker: XEON). Da sollte in EXCEL 365 eine Abfrage über den Datentyp "Aktien" möglich sein.

 

 https://support.microsoft.com/de-de/office/abrufen-eines-aktienkurses-e5af3212-e024-4d4c-bea0-623cf07fbc54

 

Diesen Beitrag teilen


Link zum Beitrag
Oli Garch

@Drengist ist wohl im falschen Thread unterwegs. Meiner Meinung nach benötigt er Hilfe für Google-Sheets.

Diesen Beitrag teilen


Link zum Beitrag
Drengist

Danke, der andere Thread hat geholfen.

Diesen Beitrag teilen


Link zum Beitrag
schneire
Am 21.5.2024 um 10:15 von Malvolio:

Der ETF wird auf XETRA gehandelt (Ticker: XEON). Da sollte in EXCEL 365 eine Abfrage über den Datentyp "Aktien" möglich sein.

 

 https://support.microsoft.com/de-de/office/abrufen-eines-aktienkurses-e5af3212-e024-4d4c-bea0-623cf07fbc54

 

 

Hallo Oli, kannst du bitte über deine WEB-Dienstformel in EXCEL bei ARIVA den Price auslesen:


=WEBDIENST("https://component-api.wertpapiere.ing.de/api/v1/components/instrumentheader/"&B2)

 

Danke

 

 

Diesen Beitrag teilen


Link zum Beitrag
Oli Garch

Die ING-API funktioniert heute offensichtlich nicht. Ich hoffe es ist eine vorübergehende Erscheinung.

Ich habe jetzt nicht ganz den Zusammenhang mit Ariva verstanden. Willst du stattdessen den Kurs da herholen?

Diesen Beitrag teilen


Link zum Beitrag
schneire
vor 2 Stunden von Oli Garch:

Die ING-API funktioniert heute offensichtlich nicht. Ich hoffe es ist eine vorübergehende Erscheinung.

Ich habe jetzt nicht ganz den Zusammenhang mit Ariva verstanden. Willst du stattdessen den Kurs da herholen?

JA ganz genau das.

Diesen Beitrag teilen


Link zum Beitrag
Oli Garch
· bearbeitet von Oli Garch
Fehler in Formel beseitigt

Ariva ist eine ganz schlechte Idee. Ohne VBA-Makro lässt sich da nichts mehr auslesen und dann unheimlich langsam.

Wenn schon mit Makro, dann doch besser mit der Onvista-API, das funktioniert recht flott.

Aber wenn du ohne Makro auskommen willst, kenne ich neben Yahoo nur noch eine Quelle bei NTV. Die Seite ist so spartanisch aufgebaut, dass sie von der Excel Webdienst-Funktion verarbeitet werden kann.

Und die geht so:

Schreibe z. B. in Zelle J2 folgendes:

=WEBDIENST("https://kursdaten.n-tv.de/teleboerse/webelements/suche.htn?suchbegriff="&C2)

In Zelle C2 steht die ISIN des Wertpapiers.

Da, wo der Kurs stehen soll (z. B. D2) folgendes eintragen:

=TEIL(J2;FINDEN("icon_";J2)+FINDEN(">";TEIL(J2;FINDEN("icon_";J2);25));FINDEN("<";TEIL(J2;FINDEN("icon_";J2)+FINDEN(">";TEIL(J2;FINDEN("icon_";J2);25));25))-1)/1

Die Kurse aktualisieren sich nicht von selbst. Für Aktualisierung: STRG-ALT-F9.

 

Ich hoffe aber, das die ING-API bald wieder läuft.

Diesen Beitrag teilen


Link zum Beitrag
schneire
vor 18 Stunden von Oli Garch:

Ariva ist eine ganz schlechte Idee. Ohne VBA-Makro lässt sich da nichts mehr auslesen und dann unheimlich langsam.

Wenn schon mit Makro, dann doch besser mit der Onvista-API, das funktioniert recht flott...

 

Hallo Oli,  danke für deine Formel und Einschätzung zu Ariva.

Bis vor einem Monat hatte ich täglich per Makro bei Ariva von 15 Wertpapier die Kurse und je 8 Performancedaten innerhalb von ca. 20 sek abgeholt. Das lief fast 2 Jahre ganz gut. Aber jetzt haben die die Kurs-Tabellen umgebaut und den Kurs kriege ich nicht mehr per Macro. Da ich den Code nicht erstellt habe und die scrapping-Position verändert ist kriege ich das auch nicht mehr alleine hin.

Somit denke ich schon an den Umbau um würde mich freuen wenn du die NTV-Formel anpasst damit ich an die Kursperformance "Zeitraum Kurs %    1 Tag  komme. Die anderen Zeiträume sollte ich schon wieder selbst hinbekommen.

Diesen Beitrag teilen


Link zum Beitrag
Oli Garch
vor 4 Stunden von schneire:

damit ich an die Kursperformance "Zeitraum Kurs %    1 Tag  komme. Die anderen Zeiträume sollte ich schon wieder selbst hinbekommen.

Und da liegt das Problem. Diese N-TV Kursseite (https://kursdaten.n-tv.de/teleboerse/webelements/suche.htn?suchbegriff=DE0005557508) beinhaltet nur den aktuellen Kurs und die Kursänderung zum Vortag, mehr nicht.

Ich habe jetzt nochmal als Test mit Excel von Ariva von 4 Aktien die Kursdaten und dann jeweils die prozentuale Performance und die dazugehörigen Kurse von 4 verschiedenen Zeiträumen mittels VBA-Makro heruntergeladen. Für diese 12 Werte benötige ich etwa 17 Sekunden. Als Dauerlösung wäre mir das zu langsam. Dein bisheriger Code scheint ja etwas schneller zu sein. Vielleicht lässt der sich ja so umbauen, dass es wieder läuft.

Diesen Beitrag teilen


Link zum Beitrag
schneire
Am 28.5.2024 um 18:28 von Oli Garch:

dazugehörigen Kurse von 4 verschiedenen Zeiträumen mittels VBA-Makro heruntergeladen. Für diese 12 Werte benötige ich etwa 17 Sekunden. Als

ich denke das geht doch schneller...

Diesen Beitrag teilen


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

Kurze Info noch für alle, die Cryptokurse einbinden wollen.

Ich habe in den letzten Monaten gute Erfahrungen mit dieser API gemacht:

https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?start=1&limit=600

 

Viel Erfolg!

 

 

Eine neue Frage noch an Oli Garch & alle anderen Experten:

Gerne würde ich gerne Änderungen in der Rating-Bewertung abrufen.

Könnt Ihr da eine Quelle empfehlen?

 

Gefallen würde es mir, https://www.finanznachrichten.de/nachrichten/empfehlungen.htm auszuwerten.

Dort die Tabelle "Aktien / Empfehlungen mit dem größten Kurspotenzial (letzte 90 Tage)".

Leider komme ich aber per Excel-Scraping nicht an die Unterseiten 2-10 ran ...

Diesen Beitrag teilen


Link zum Beitrag
Oli Garch
· bearbeitet von Oli Garch

@CK-ONE

War ein paar Tage im Urlaub und habe mir jetzt mal die Tabelle auf Finanznachrichten.de angesehen. Das Problem mit den nicht ladbaren Unterseiten hat mich schon gereizt. So etwas habe ich bisher noch nicht gemacht. Jetzt läuft es.
Ich werde eine Excel-Datei anhängen. Da ist ein Auswahlfenster eingebaut, in dem Alles, Deutschland, Europa-ohne D. oder USA ausgewählt werden kann, so wie es auf der Internetseite auch funktioniert. Außerdem ist da noch ein Startbutton für das Makro.
Hier erst einmal nur das Makro zum kopieren und schnell mal ausprobieren. Es ist nur minimal geändert, weil ich eine Kopfzeile für die Tabelle einbauen musste, die in der Excel-Tabelle bereits vorhanden ist. Das Makro ist mit der Liste der deutschen Empfehlungen voreingestellt, da keine Auswahlmöglichkeit vorhanden ist.
Ich hoffe es funktioniert.

 

Sub Empfehlungen()
Dim mySheet As Worksheet
Dim myTable As QueryTable
Dim url As String
Dim Seite As Integer
Dim letzteSeite As Integer
Dim letzteZeile As Integer
Dim Liste As Integer
'UserForm1.Show
'If Abbruch = True Then Exit Sub
Set mySheet = Sheets(1)
'Kopfzeile
mySheet.Cells(1, 2).Value = "Aktie"
mySheet.Cells(1, 3).Value = "Kurs"
mySheet.Cells(1, 4).Value = "Ziel"
mySheet.Cells(1, 5).Value = "Potenzial"
mySheet.Cells(1, 6).Value = "Kaufen"
mySheet.Cells(1, 7).Value = "Halten"
mySheet.Cells(1, 8).Value = "Verkaufen"

letzteZeile = mySheet.UsedRange.Rows.Count
If letzteZeile < 2 Then letzteZeile = 2
mySheet.Range(Cells(2, 1), Cells(letzteZeile, 1)).EntireRow.Delete
letzteSeite = 10
Liste = 1
letzteZeile = mySheet.UsedRange.Rows.Count
For Seite = 1 To letzteSeite
    url = "https://www.finanznachrichten.de/w/184/4?tab=" & Liste & "&page=" & Seite
    Set myTable = mySheet.QueryTables.Add("URL;" & url, mySheet.Cells(letzteZeile + 1, 1))
    With myTable
        .WebSelectionType = xlEntirePage
        .WebFormatting = xlWebFormattingNone
        .WebDisableDateRecognition = True
        .Refresh (False)
        .Delete
    End With
    Columns("A:A").ColumnWidth = 25
    Cells(1, 1).Select
    For i = 1 To 6
        mySheet.Cells(letzteZeile + 1, 1).EntireRow.Delete
    Next
    letzteZeile = mySheet.UsedRange.Rows.Count
    If InStr(Cells(letzteZeile, 1).Value, "Seite") Then
        If InStr(Cells(letzteZeile, 1).Value, "Weiter") = False Then
            mySheet.Cells(letzteZeile, 1).EntireRow.Delete
            For i = 1 To letzteZeile
                mySheet.Cells(i, 1).Value = ""
            Next
            letzteZeile = mySheet.UsedRange.Rows.Count
        Exit Sub
        Else
            mySheet.Cells(letzteZeile, 1).EntireRow.Delete
            letzteZeile = mySheet.UsedRange.Rows.Count
            For i = 1 To letzteZeile
                mySheet.Cells(i, 1).Value = ""
            Next
        End If
    End If
Next
End Sub

Empfehlungen.xlsm

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