Zum Inhalt springen
mc-fly

Aktienkurse im Excel automatisch aktualisieren

Empfohlene Beiträge

FlintheartG.

Frage an die Excel Cracks (zb @Oli Garch  ): gibt es eigentlich eine Möglichkeit nur den Wochenschlusskurs automatisch zu aktualisieren?

Diesen Beitrag teilen


Link zum Beitrag
Oli Garch
vor 21 Stunden von FlintheartG.:

gibt es eigentlich eine Möglichkeit nur den Wochenschlusskurs automatisch zu aktualisieren?

Ich weiß nicht, ob ich den dahinterstehenden Wunsch richtig erkenne: Ich kann z. B. Wochenschlusskurse eines bestimmten Zeitraumes herunterladen. Das würde bei Yahoo ganz gut funktionieren, allerdings hauptsächlich für Aktien und einige Fonds (Ticker-Symbol erforderlich). Bei Onvista muss man für den Kursdownload inzwischen angemeldet sein. Bei Ariva werden die Kurse mit Java-Script geladen - ganz schwierig. Sonst sind mir keine weiteren Quellen bekannt.
Wenn du was ganz anderes meinst, lass es mich wissen.

Gruß Oli

Diesen Beitrag teilen


Link zum Beitrag
FlintheartG.
vor 2 Stunden von Oli Garch:

Ich weiß nicht, ob ich den dahinterstehenden Wunsch richtig erkenne: Ich kann z. B. Wochenschlusskurse eines bestimmten Zeitraumes herunterladen. Das würde bei Yahoo ganz gut funktionieren, allerdings hauptsächlich für Aktien und einige Fonds (Ticker-Symbol erforderlich). Bei Onvista muss man für den Kursdownload inzwischen angemeldet sein. Bei Ariva werden die Kurse mit Java-Script geladen - ganz schwierig. Sonst sind mir keine weiteren Quellen bekannt.
Wenn du was ganz anderes meinst, lass es mich wissen.

Gruß Oli

Hi, Dank Dir für die Rückmeldung, onvista nutze ich bereits, allerdings bisher nur manuell (über den CSV Download) und ich bekomme dann alle Tage. Den Wochenschlusskurs hole ich mir dann mit der passenden EXCEL Formel aus dem CSV. Das würde ich gerne automatisieren damit ich nur den Schlusskurs der Woche bekomme (Yahoo deckt leider nicht alles ab, was ich benötige).  

Diesen Beitrag teilen


Link zum Beitrag
Oli Garch

@FlintheartG.

hat etwas länger gedauert, aber jetzt habe ich etwas hinbekommen, das vielleicht für dich brauchbar ist.
Das Makro hier unterhalb importiert die historische Werte von Onvista und gibt nur die Wochenschlusskurse mit dem dazugehörigen Datum aus. Das sind etwa 4-5 Werte, da die Onvista-Kursliste nur einen Monat zurückreicht und nicht veränderbar ist. Es sind auch einige mit (') auskommentierte Codezeilen enthalten, da ich diesen Code aus der unten angehängten Excel-Datei entnommen habe. In dieser Datei wird nach einem Klick auf einen Button dieses Makro in einer Programmschleife gestartet und arbeitet eine Liste von ISIN auf Tabelle1 ab. Die Werte werden auf dem zweiten Tabellenblatt gespeichert.
Wichtig ist, dass dieses Makro nur läuft, wenn im Visual Basic Editor (in Excel mit Alt-F11 starten, wenn man kein Symbol in der Symbolleiste hat) unter EXTRAS-VERWEISE... die Microsoft HTML Object Library aktiviert ist. In der angehängten Beispieldatei ist das schon der Fall.
Nochmal als Hinweis für alle, die die Beispieldatei ausprobieren wollen.
Bei einer heruntergeladenen Datei mit Makro reicht es nicht, beim Öffnen der Datei den gelben Warnhinweis wegzuklicken und bei den Sicherheitseinstellungen im Trustcenter bei den Makroeinstellungen Makros zuzulassen. Bei der heruntergeladenen Datei muss man im geschlossenem Zustand mit Rechtsklick Eigenschaften auswählen und unten rechts bei Sicherheit zulassen einen Haken setzen.
 

'Microsoft HTML Object Library aktivieren!
Option Explicit
Sub historischeKurse()
Dim Wert As Object
Dim myRequest As Object
Dim myDokument As HTMLDocument
Dim myISIN As String
Dim tabellenNummer As Integer
Dim Url As String
Dim isinZeile As Integer
Dim isinSpalte As Integer
Dim htmlTabRow As Integer
Dim rowMax As Integer
Dim Datum As Variant
Dim Schlusskurs As Variant
Dim zeileKurstab As Variant
'dieses Makro ist nur zum testen gedacht und benutzt nur die folgende ISIN!
myISIN = "DE0005557508"
'isinZeile = 3
'isinSpalte = 3
tabellenNummer = 0
zeileKurstab = 1
'Sheets("kurstabelle").Select
Sheets("Tabelle1").Select
Sheets("Tabelle1").Range("A:H").Select
Selection.Delete
Range("A1").Select
Application.Wait (Now + TimeValue("0:00:01"))

'Do Until Sheets("Tabelle1").Cells(isinZeile, isinSpalte).Value = ""
    'myISIN = Sheets("Tabelle1").Cells(isinZeile, isinSpalte).Value
    Sheets("Tabelle1").Cells(zeileKurstab, 1).Value = myISIN
    zeileKurstab = zeileKurstab + 1
    Url = "https://www.onvista.de/aktien/historische-kurse/" & myISIN
    Set myRequest = CreateObject("MSXML2.XMLHTTP")
    myRequest.Open "GET", Url, False
    myRequest.Send
    Set myDokument = New HTMLDocument
    myDokument.body.innerHTML = myRequest.ResponseText
    htmlTabRow = 0
    Set Wert = myDokument.getElementsByClassName("table")(tabellenNummer)
    rowMax = Wert.Rows.Length
    Do Until htmlTabRow = rowMax
        Set Wert = myDokument.getElementsByClassName("table")(tabellenNummer)
        Datum = Wert.Rows(htmlTabRow).Cells(0).innerText
        Schlusskurs = Wert.Rows(htmlTabRow).Cells(4).innerText
        Schlusskurs = Replace(Schlusskurs, "EUR", "")
        Schlusskurs = Replace(Schlusskurs, "USD", "")
        If Schlusskurs <> "Schlusskurs" Then Schlusskurs = CDbl(Schlusskurs)
        If Datum <> "Datum" Then
            If Weekday(Datum, 2) = 5 Then
                Cells(zeileKurstab, 1).Value = CDate(Datum)
                Cells(zeileKurstab, 2).Value = Schlusskurs
                Cells(zeileKurstab, 2).NumberFormat = "0.00"
            End If
        Else
            Cells(zeileKurstab, 1).Value = Datum
            Cells(zeileKurstab, 2).Value = Schlusskurs
            zeileKurstab = zeileKurstab + 1
        End If
        htmlTabRow = htmlTabRow + 1
        If Datum <> "Datum" Then
            If Weekday(Datum, 2) = 5 Then
                zeileKurstab = zeileKurstab + 1
            End If
        End If
    Loop
    'isinZeile = isinZeile + 1
    'zeileKurstab = Sheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row + 3
'Loop
Set myRequest = Nothing
Set Wert = Nothing
End Sub
 

OnvistaKursliste.xlsm

Diesen Beitrag teilen


Link zum Beitrag
FlintheartG.

@Oli Garch  Du bist der Meister aller Klassen, die Lösung ist Super, vielen Dank!!!

 

 

Diesen Beitrag teilen


Link zum Beitrag
schneire
Am 25.6.2024 um 14:51 von Oli Garch:

@FlintheartG.

hat etwas länger gedauert, aber jetzt habe ich etwas hinbekommen, das vielleicht für dich brauchbar ist.
Das Makro hier unterhalb importiert die historische Werte von Onvista und gibt nur die Wochenschlusskurse mit dem dazugehörigen Datum aus. Das sind etwa 4-5 Werte, da die Onvista-Kursliste nur einen Monat zurückreicht und nicht veränderbar ist. Es sind auch einige mit (') auskommentierte Codezeilen enthalten, da ich diesen Code aus der unten angehängten Excel-Datei entnommen habe. In dieser Datei wird nach einem Klick auf einen Button dieses Makro in einer Programmschleife gestartet und arbeitet eine Liste von ISIN auf Tabelle1 ab. Die Werte werden auf dem zweiten Tabellenblatt gespeichert.
Wichtig ist, dass dieses Makro nur läuft, wenn im Visual Basic Editor (in Excel mit Alt-F11 starten, wenn man kein Symbol in der Symbolleiste hat) unter EXTRAS-VERWEISE... die Microsoft HTML Object Library aktiviert ist. In der angehängten Beispieldatei ist das schon der Fall.
Nochmal als Hinweis für alle, die die Beispieldatei ausprobieren wollen.
Bei einer heruntergeladenen Datei mit Makro reicht es nicht, beim Öffnen der Datei den gelben Warnhinweis wegzuklicken und bei den Sicherheitseinstellungen im Trustcenter bei den Makroeinstellungen Makros zuzulassen. Bei der heruntergeladenen Datei muss man im geschlossenem Zustand mit Rechtsklick Eigenschaften auswählen und unten rechts bei Sicherheit zulassen einen Haken setzen.
 

'Microsoft HTML Object Library aktivieren!
Option Explicit
Sub historischeKurse()
Dim Wert As Object
Dim myRequest As Object
Dim myDokument As HTMLDocument
Dim myISIN As String
Dim tabellenNummer As Integer
Dim Url As String
Dim isinZeile As Integer
Dim isinSpalte As Integer
Dim htmlTabRow As Integer
Dim rowMax As Integer
Dim Datum As Variant
Dim Schlusskurs As Variant
Dim zeileKurstab As Variant
'dieses Makro ist nur zum testen gedacht und benutzt nur die folgende ISIN!
myISIN = "DE0005557508"
'isinZeile = 3
'isinSpalte = 3
tabellenNummer = 0
zeileKurstab = 1
'Sheets("kurstabelle").Select
Sheets("Tabelle1").Select
Sheets("Tabelle1").Range("A:H").Select
Selection.Delete
Range("A1").Select
Application.Wait (Now + TimeValue("0:00:01"))

'Do Until Sheets("Tabelle1").Cells(isinZeile, isinSpalte).Value = ""
    'myISIN = Sheets("Tabelle1").Cells(isinZeile, isinSpalte).Value
    Sheets("Tabelle1").Cells(zeileKurstab, 1).Value = myISIN
    zeileKurstab = zeileKurstab + 1
    Url = "https://www.onvista.de/aktien/historische-kurse/" & myISIN
    Set myRequest = CreateObject("MSXML2.XMLHTTP")
    myRequest.Open "GET", Url, False
    myRequest.Send
    Set myDokument = New HTMLDocument
    myDokument.body.innerHTML = myRequest.ResponseText
    htmlTabRow = 0
    Set Wert = myDokument.getElementsByClassName("table")(tabellenNummer)
    rowMax = Wert.Rows.Length
    Do Until htmlTabRow = rowMax
        Set Wert = myDokument.getElementsByClassName("table")(tabellenNummer)
        Datum = Wert.Rows(htmlTabRow).Cells(0).innerText
        Schlusskurs = Wert.Rows(htmlTabRow).Cells(4).innerText
        Schlusskurs = Replace(Schlusskurs, "EUR", "")
        Schlusskurs = Replace(Schlusskurs, "USD", "")
        If Schlusskurs <> "Schlusskurs" Then Schlusskurs = CDbl(Schlusskurs)
        If Datum <> "Datum" Then
            If Weekday(Datum, 2) = 5 Then
                Cells(zeileKurstab, 1).Value = CDate(Datum)
                Cells(zeileKurstab, 2).Value = Schlusskurs
                Cells(zeileKurstab, 2).NumberFormat = "0.00"
            End If
        Else
            Cells(zeileKurstab, 1).Value = Datum
            Cells(zeileKurstab, 2).Value = Schlusskurs
            zeileKurstab = zeileKurstab + 1
        End If
        htmlTabRow = htmlTabRow + 1
        If Datum <> "Datum" Then
            If Weekday(Datum, 2) = 5 Then
                zeileKurstab = zeileKurstab + 1
            End If
        End If
    Loop
    'isinZeile = isinZeile + 1
    'zeileKurstab = Sheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row + 3
'Loop
Set myRequest = Nothing
Set Wert = Nothing
End Sub
 

OnvistaKursliste.xlsm 30 kB · 9 Downloads

 

Diesen Beitrag teilen


Link zum Beitrag
schneire
· bearbeitet von schneire

@Oli Garch

Hallo Oli, wieder mal schön von dir zu lesen. Ich habe den Code für die "Historischen Performance: Woche Monat 6 Monate Jahr 3 Jahre 5 Jahre 7 Jahre 10 Jahre" die Tabelle(n) angepasst und direkt auf meine ISIN-Tabelle die Werte geschrieben.
Und ich muß sagen das ist mega schnell bei onvista. Ich musste wegen der enthaltenen ETF's ein bischen umbauen.

Wie man sieht habe ich den 'aktuellen Kurs' leider noch nicht dazu bekommen. Wäre schön wenn du dir das mal ansiehst.
Ein weiterer Makel ist für mich, das auf onvista bei den ETF's dies nicht vollständig ist. (evtl. gibt es da noch andere Tabellen?)

Nun war ich schon versucht den Code auf ARIVA anzuwenden, aber da komme ich so nicht ran an die Tabelle...

OnvistaHistoryOli.xlsm

Diesen Beitrag teilen


Link zum Beitrag
Oli Garch

@schneire

Das Dumme bei der historischen Performance bei Onvista ist, dass die Tabellen für Aktien und ETFs unterschiedlich aufgebaut sind. Einmal stehen die Werte in einer Spalte (Aktien) und bei ETFs in einer Zeile. Und die Zeiträume sind auch verschieden. Ich habe es mal durchprobiert mit extra Tabellen für Aktien und Fonds und auch die Makros für jede Wertpapier-Art extra erstellt. Das läuft ganz gut. Wie ich weiß, interessiert dich aber auch noch die Performance von Rohstoffen. Auf diese Tabelle lässt sich bei Onvista nicht auf die gleiche Art zugreifen wie bei Wertpapieren. Ich hab's nicht hinbekommen. Als Ersatz hole ich die Performance von Gold von einer speziellen Adresse bei N-TV. Das geht auch rasend schnell. Alle 3 Tabellen werden mit einem übergeordneten Makro, das die 3 dazugehörigen Makros aufruft, aktualisiert. Die Makros können aber auch einzeln gestartet werden.
Und um die Sache abzurunden habe ich den Performance-Abruf von Ariva etwas aufgefrischt. Da stehen alle Wertpapierarten sowie Rohstoffe in einer Tabelle und es geht jetzt auch recht schnell. Die abrufbaren Zeiträume sind bei alle Wertpapierarten gleich.
Du hast die Wahl.
Dateien im Anhang.

ArivaPerformance.xlsm OnvistaPerformance.xlsm

Diesen Beitrag teilen


Link zum Beitrag
schneire
Am 25.6.2024 um 23:38 von FlintheartG.:

@Oli Garch  Vielen Dank!
Ja die Seiten sind unterschiedlich bei den "Kennzahlen". Bei der "Übersicht -Kursentwicklung" scheinen sie erst mal gleich und dort gibt es eine Chartansicht die die Performancewerte nahezu identisch abbildet (auf 10J kann ich verzichten). Ich bin mir nicht sicher ob das hier auch gut auszulesen ist?

Nun habe ich die beiden Dateien getestet und bleibe vorerst noch bei Ariva obwohl die Onvista min. 2x so schnell ist. Zur Weiterverwendung mussten noch die % Replaced werden.
 

 

 

 

Diesen Beitrag teilen


Link zum Beitrag
Oli Garch

@schneire

Ich habe jetzt mal eine Datei für Ariva Performance-Werte ohne Prozentzeichen gemacht. Es handelt sich um echte Zahlen die wieder als Prozentwerte formatiert werden könnten. Der aktuelle Kurs ist auch wieder dabei.
Zum Vergleich dazu hänge ich noch eine Datei mit Performance-Werten von N-TV an. Die Ladegeschwindigkeit ist schon beeindruckend.
Da sich die Tabellen bei verschiedenen Wertpapieren etwas unterscheiden, sind es wieder mehrere Tabellen. In den Makros sind die Zeilen- und Spaltenangaben so gemacht, dass außerhalb der Tabellen Zeilen und Spalten hinzugefügt oder gelöscht werden können, ohne dass es Auswirkungen bei der Ausführung der Makros hat. Es können auch weitere Zeilen bei den Tabellen hinzugefügt oder gelöscht werden, ohne dass irgendeine Funktion gestört ist. Das ist jetzt auch bei der Ariva-Tabelle so. Dadurch lässt sie sich beliebig auf einem Tabellenblatt positionieren.

PerformanceNTV.xlsm PerformanceAriva.xlsm

Diesen Beitrag teilen


Link zum Beitrag
schneire
vor 15 Stunden von Oli Garch:

@schneire

...
Zum Vergleich dazu hänge ich noch eine Datei mit Performance-Werten von N-TV an. Die Ladegeschwindigkeit ist schon beeindruckend...
Absolut 4sec für alle 15 Werte bei mir! Ich habe den 100er Teiler rausgenommen und es läuft bei Aktien sehr gut aber bei den Fonds:

Leider sind die FONDs-snipets wohl auch unterschiedlich und es kommen mal Kurs- und mal Performancewerte...
grafik.thumb.png.f7297a65c742cfc2fc085465b61aa911.png

 

 

 

Diesen Beitrag teilen


Link zum Beitrag
Oli Garch

@schneire

Hast recht, bei Fonds sieht es anders aus als bei ETFs. Das habe ich übersehen. Ich habe also noch eine neue Tabelle in das Blatt eingefügt und für Fonds und ETFs ein eigenes Makro erstellt. Man könnte auch eine Tabelle verwenden, eine Spalte für die Angabe von Fonds oder ETF einfügen und das Makro entsprechend anpassen.
Angeregt durch die Anpassung, die du bei dir vorgenommen hast, werden die Werte nicht mehr durch 100 geteilt. Es ist also der Prozentwert ohne das Prozentzeichen. Das liest sich einfach besser.
Um auch weiteren Mitlesern die Tabelle nachvollziehbar zu machen, eine Anmerkung zur verwendeten ntv-id. Sie wird statt ISIN oder WKN verwendet. Finden kann man sie, indem man auf einer Börsenseite bei N-TV im Wertpapiersuchfeld die ISIN oder WKN eingibt. Wenn das entsprechende Wertpapier angezeigt wird, steht oben in der Adresszeile hinter dem letzten Bindestrich die ntv-id. Wählt man auf der Seite einen anderen Börsenplatz aus, ändert sich auch die id-Nummer. Darüber lässt sich steuern, von welcher Börse die Kurse und Performancedaten geladen werden.
Einen Fehler habe ich noch behoben: Bei den Rohstoffen hat die 1 Tages-Performance gefehlt und dadurch war alles um eine Spalte nach links gerutscht.

Im Anhang die korrigierte Datei

PerformanceNTV.xlsm

Diesen Beitrag teilen


Link zum Beitrag
schneire
· bearbeitet von schneire
Am 25.6.2024 um 23:38 von FlintheartG.:

@Oli Garch  ja das läuft schon mal sehr gut über die vier Macros.
Wenn ich über die WKN-Suche Aktien,Etf, (nicht Fonds) oder Gold eingebe erhalte ich immer eine Übersicht-Seite die an der gleichen Positiongrafik.png.9dae777cfe5e0d2b71ea4ec8461b7a9b.png
die gesuchten "Kursperformance" Daten ohne "Lücken" darstellt. So stellt sich mir die Frage ob man nicht besser daraus ein Objekt/Tabelle o.ä übernehmen kann?
Dann wäre es ja wie bei Ariva vollständig und wesentlich performanter.

 

 

 

Diesen Beitrag teilen


Link zum Beitrag
Oli Garch
vor einer Stunde von schneire:

So stellt sich mir die Frage ob man nicht besser daraus ein Objekt/Tabelle o.ä übernehmen kann?

Darüber habe ich auch schon nachgedacht und habe es auch schon angewendet und zwar in der Datei Onvistaperformance im Beitrag #883 hier im Faden. Da hatte ich ja Probleme mit der Rohstofftabelle bei Onvista und bin dann dafür auf NTV ausgewichen. Das habe ich es so gemacht:
Ich hänge ein neues Tabellenblatt an, lade die Tabelle von
https://kursdaten.n-tv.de/teleboerse/webelements/snippet.htn?sektion=performance&i=2323869
herunter in die neu erstellte Tabelle, kopiere die Spalte mit den Werten, füge die Werte in die Waagerechte transponiert in die Performancetabelle ein und lösche dann die angefügte Tabelle wieder. Läuft alles so schnell, dass man es nicht sieht.
Wenn du die hier eben genannte Adresse mal eingibst, siehst du, dass die Internetseite nur diese Tabelle enthält, sonst nichts. Da kann man nicht viel falsch machen und funktioniert auch sehr schnell. Der Programmieraufwand ist allerdings kaum geringer.
Trotzdem wird man wohl nicht darum herumkommen, für die verschiedenen Wertpapierarten unterschiedliche Tabellen zu anzulegen.
Ich könnte das demnächst mal durchspielen.

Diesen Beitrag teilen


Link zum Beitrag
schneire
· bearbeitet von schneire

@Oli Garch, ok Theorie schon verstanden aber beim Laden des WEB in eine weitere Tabelle bin ich schon abgehängt.
Sollte doch so ähnlich wie bei #883 "OnvistaPerformance - Gold" werden aber eben über n-tv... 

Sobald das Macro an die Stelle kommt stoppt VBA mit "unerwarteter Fehler" am  .Refresh:

    With myTable
        .WebSelectionType = xlSpecifiedTables
        .WebTables = "1"
        .WebFormatting = xlWebFormattingNone
        .WebDisableDateRecognition = True
        .Refresh (False)
        .Delete
    End With
übrigens beim #875 zeigt sich bei mir die gleiche Fehlermeldung.
P.S. und ja leider ist die Fondsperformance bei NTV ist nicht identisch aufgebaut zu den anderen Tabellen (Aktien, ETF, Gold).  Aber darauf könnte ich langsam verzichten.

Diesen Beitrag teilen


Link zum Beitrag
Oli Garch

@schneire

Am 4.7.2024 um 20:31 von schneire:

Sobald das Macro an die Stelle kommt stoppt VBA mit "unerwarteter Fehler" am  .Refresh:

das kann ich hier nicht nachvollziehen. Deshalb hoffe ich mal, dass der Fehler in der neuen Version verschwindet.

 

hier mal die neue Version unter Verwendung von Querytable-Ojekt. Beim Spezialfall Fonds gibt es allerdings keine Tabelle (unter der gewählten NTV-Adresse), die den aktuellen Kurs enthält. Da half nur ein zusätzlicher HTTP-Request. Deshalb dauert der Abruf bei Fonds (nicht bei ETFs) geringfügig länger.
Der Querytable-Abruf bringt es mit sich, dass ich zum Zwischenspeichern der abgerufenen Tabelle einen Platz benötige. Den habe ich auf einem Hilfstabellenblatt eingerichtet. Ich verzichte hier darauf, die Tabelle nach jedem Abruf zu löschen. Es werden nur die zwischengespeicherten Daten gelöscht.
Außerdem habe ich jetzt alle Wertpapiere in einer Tabelle zusammengeführt. Das Makro habe ich mit verschiedenen Kommentaren versehen, um besser nachvollziehen zu können, was abläuft.
Das Makro ist so programmiert, das die Tabelle (beliebig positionierbar) und auch das Makro in ein anderes Workbook kopiert werden können und da lauffähig wären. 3 Voraussetzungen müssen gegeben sein:
- Die Wertpapiertabelle ist als Tabelle formatiert, hat die Bezeichnung 'Performance' und befindet sich auf dem Blatt 'Performance'. (Klickt man in diese Tabelle, erscheint ein neuer Excel-Menü-Eintrag 'Tabellenentwurf', in dem der Name der Tabelle zu finden ist).
- Ein Tabellenblatt mit dem Namen 'Hilfstabelle' existiert
- In der Arbeitsmappe ist im VBA-Editor (ALT-F11) unter EXTRAS - Verweise die Microsoft Object Library aktiviert

PerformanceNTV-v2.xlsm

Diesen Beitrag teilen


Link zum Beitrag
FlintheartG.
· bearbeitet von FlintheartG.

@Oli Garch jetzt melde ich mich nochmal wegen der EOW-Kursabfrage - aktuell zieht das Script den letzten Tageskurs unabhängig vom Börsenplatz (auch bei den Ariva und ntv sheets). Gibt es evt eine Möglichkeit dass nur XETRA Schluss-Kurse (für mich Wochenschluss-Kurse) abgerufen werden?

Diesen Beitrag teilen


Link zum Beitrag
Oli Garch

@FlintheartG.

Onvista arbeitet neben der ISIN mit einer 'notation', die den Börsenplatz bestimmt. Die entsprechende Zahl findet man nach Eingabe von WKN oder ISIN im Suchfeld in der Adresszeile, wenn man einmal einen anderen Börsenplatz neben dem aktuellen Kurs ausgewählt hat. Wird, wie bei DAX-Aktien zuerst als Standard Xetra angezeigt, ist da die notation-Nummer nicht zu sehen. Dann eben einen anderen Börsenplatz auswählen und dann wieder XETRA. Ich habe mal schnell die Datei aus Beitrag #879 umgebaut und angehängt. Da ist eine Spalte mit der notation-id eingefügt. Ich denke es funktioniert.

HistoKurseOnvistaETR.xlsm

Diesen Beitrag teilen


Link zum Beitrag
Oli Garch
Am 4.7.2024 um 20:31 von schneire:

"unerwarteter Fehler" am  .Refresh:

@schneire

ich habe noch mal darüber nachgedacht. Das riecht irgendwie nach Laufzeitfehler. Die Seite ist vielleicht noch nicht geladen. obwohl genau das  .Refresh (False) im Code den Programmablauf anhalten soll, bis die Tabelle geladen ist. Nur mal so zum probieren: füge mal vor diese Zeile ' .BackgroundQuery = False ' ein.  Bei mir ist kein Unterschied zu erkennen, aber vielleicht zeigt es bei dir Wirkung.

Diesen Beitrag teilen


Link zum Beitrag
schneire
· bearbeitet von schneire
vor 17 Stunden von Oli Garch:

@schneire Hallo Oli, danke für deine Verbesserungen
- Leider der gleiche "unerwarteter Fehler"  1004  am    .refresh         ich arbeite mit Office2019 und habe diese Verweise eingestellt. Fehlt da noch was/ist falsch eingestellt?

 

 

 

grafik.png.80e973f091f534bb4f36bbd68ca7988b.png

 

Diesen Beitrag teilen


Link zum Beitrag
Oli Garch

@schneire

bei mir sind die gleichen Verweise gesetzt. Mein Office ist auch V2019.

gut, dass wir eine Fehlernummer haben. Habe schon gestern mal nachQuerytable .Refresh Fehlern gegoogelt. Da gibt es einiges. Bis jetzt habe ich aber noch nichts Brauchbares gefunden.

Nächster (hilfloser) Versuch:

nimm erst mal unter den DIM-Anweisungen die Zeile

Application.DisplayAlerts = False heraus

Das ist ein irgendwie übriggebliebener Rest, der jetzt nicht sehr hilfreich ist.

Vor der Schleife, die mit: Do Until Range("Performance"). beginnt,

füge mal Sheets("Hilfstabelle").Select ein.

Dann sehen wir weiter.

Diesen Beitrag teilen


Link zum Beitrag
schneire
· bearbeitet von schneire
vor 55 Minuten von Oli Garch:

@schneireleider nein -  an der gleichen Stelle der .refresh Fehler. Und ja ich habe auch nichts gefunden.
Habe jetzt ein "on Error resume" next reingesetzt, da läuft es weiter aber ohne die erwarteten Werte.

 

PerformanceNTV-v3.xlsm

Diesen Beitrag teilen


Link zum Beitrag
Oli Garch

Da frühere Versionen nicht ganz fehlerfrei waren, abschließend hier noch einmal eine neue, hoffentlich fehlerfreie Version einer Excel-Tabelle, die Performance-Daten verschiedener Zeiträume von bis zu 5 Jahren von N-TV Börsenseiten ausliest.

Es können Werte von Aktien, ETFs, Fonds, Rohstoffen (Gold) und Indizes abgerufen werden. 

Wie auch schon im Beitrag #887 beschrieben, wird als Besonderheit für den Abruf statt WKN oder ISIN eine ntv-id verwendet, die auf den Börsenseiten von N-TV nach Eingabe der ISIN einmalig aus der Adresszeile ausgelesen werden muss (Zahl hinter dem letzten Bindestrich).

PerformanceNTV-v4.xlsm

Diesen Beitrag teilen


Link zum Beitrag
CK-ONE
Am 10.6.2024 um 17:08 von Oli Garch:

@CK-ONE

War ein paar Tage im Urlaub [...]

Danke Dir für die Mühen!

Ich war privat außer Gefecht und konnte deshalb den Code noch nicht ausprobieren.

Hole das in den kommenden Tagen nach.

 

Bis dahin habe ich noch eine Frage zum Scrapen des Fear & Greed Index Scores.

Ich habe diese Quelle aufgetan:

https://production.dataviz.cnn.io/index/fearandgreed/graphdata/2024-09-26

 

Aktualisiert man das Datum, wird 1a der Code angezeigt, der den Score enthält.

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

Gibt es da einen Trick, um doch irgendwie noch an den Wert zwischen "score" und "rating" zu kommen?

 

Dank im Voraus und beste Grüße in die Community

Diesen Beitrag teilen


Link zum Beitrag
StE
· bearbeitet von StE
vor einer Stunde von CK-ONE:

Bis dahin habe ich noch eine Frage zum Scrapen des Fear & Greed Index Scores

# Merge VIX and VIX3M if last symbol sym completed both VIX data frames
df_bvix = df_vix.merge(df_vix3m, on="date", how="inner")

# Empty source data frames so this is only run once
df_vix = df_vix.head(0)
df_vix3m = df_vix3m.head(0)

# Calculate VIX3M / VIX ratio
df_bvix["r_open"] = df_bvix["open3"] / df_bvix["open"]
df_bvix["r_high"] = df_bvix["high3"] / df_bvix["high"]
df_bvix["r_low"] = df_bvix["low3"] / df_bvix["low"]
df_bvix["r_close"] = df_bvix["close3"] / df_bvix["close"]

# Select lowest of OHLC as RVIX number
df_bvix["RVIX"] = df_bvix[["r_open", "r_high", "r_low", "r_close"]].min(axis=1)

# Copy columns over for merging
df_new = df_bvix[["date", "RVIX"]].copy()

# Remember current value
rvix = round(df_bvix["RVIX"].iloc[-1] * 100, 0)
rvix_str = f"RVIX {rvix:.0f}"

Ugh, CNN. Hier eine Alternative, aber kein Excel sondern Python. Ich nenne das Ding "RVIX" weil es die Ratio aus VIX3M und VIX ist. Wird täglich neu kalkuliert und dann gehts zurück soweit die API will, sagen wir 10 Jahre. Ich sortiere alle RVIX-Werte dann in Percentile ein und lasse mir vom aktuellen Wert das Percentil ausgeben. Je niedriger, desto Panik, wie Anfang August 2024. Alles im unteren Drittel also < 33 ist schon recht panisch. Bei VIX3M/VIX waren wir da bei so circa 0.66 was schon sehr sehr niedrig war. Forcierter Yen Carry Trade Unwind Bla Bla, sagte man.

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