Kursdaten aus dem Internet

sens.sash

Lt. Junior Grade
Registriert
März 2005
Beiträge
398
Hallo zusammen,

für meine Masterarbeit benötige ich historische Kursdaten vom 01.01.2015 bis zum heutigen Tage.
Da es sich um eine Abfrage mit mehr als 100 Einzelaktien handelt, kam ich auf die Idee, es "irgendwie" automatisch machen zu lassen.

Nun recherchierte ich im Netz. Konnte aber bis jetzt keine Zufriedenstellende Lösung finden.
Die quick and dirty Version aus folgendem Ratgeber:

http://praxistipps.chip.de/aktienkurse-aus-dem-internet-in-excel-einfuegen_3603

scheitert daran, dass es die Verknüpfung "MSN MoneyCentral Investor Aktienkurse" in meinem Excel nicht gibt.

Darüber hinuas probierte ich ein paar Anleitungen von Youtube aus, die alle ebenfalls nicht funktionierten, da der VBA Code immer einen Fehler auswarf.

Kann mir aus dem Grund einer dabei helfen, Kursdaten von über 100 Einzelwerten (FTSE100) aus dem Internet per Massendatenabfrage zu erstellen?

Vielen Dank.

UPDATE:

Das mit der MSN Verbindung aht geklappt. Bringt jedoch nicht das gewünscht Ergebnis.
Ziel ist es eine Tabelle zu haben die z.B. folgende kopf aufweist:


Name Datum Eröffnungskurs Schlusskurs

Sind dann eben 100 * 365 Datensätze.
 
Zuletzt bearbeitet:
Mahlzeit,

die Kursadten die der MT4/MT5 herunterladen kann, sind die für dich verwertbar als Daten, wenn Ja, dann würde ich mir einen Demoaccount anlegen und dies machen.

Hab dir mal ein Beispiel angehängt von MT4 (AUD/CAD 1M Chart)
Datum/Uhrzeit/Open/High/Low/Close/Volumen

einmal .csv
einmal .htm
einmal .prn
 

Anhänge

Zuletzt bearbeitet:
Guck dir mal Yahoo Finance an. Da kannst du dir die Daten auch als Excel exportieren. Ob du die Abfrage selber automatisieren kannst, weiß ich aber auch nicht.
 
Bei Yahoo-Finance kannst du auch per Excel VBA deine 100 Werte runterladen - bei InvestExcel gibt es ein paar Templates, die musst du ggf. noch ein bissl anpassen und schon funktioniert es. (Alternativ halt 100 mal den Export bei Yahoo Finance manuell starten ... je nach dem wie fit du in VBA bist)
 
Hallo zusammen,

danke für Eure Rückmeldungen.
Habe mich jetzt mittels eines VBA-Makros in Excel bedient.

Anleitung:

1. Code im Visual Basic hinterlegen.
2. Reiter "Kurskürzel" anlegen.
3. Von A1 bis unendlich senkrecht die Kurskürzel oder Ticker von Yahoo hinterlegen.
4. Reiter "Tabelle1" anlegen
5. Makro asuführen und zurücklehnen
6. Datenquali von Yahoo ist mäßig.
7. Richtig aufbereiten.
8. (Im Makro ist der Zeitpunkt 01.01.2015 bis 30.09.16 hinterlegt.)

Vielleicht hilft es jemandem.

Gruß und Danke an alle.

Code:
Sub Kurse_Aktualisieren(ByVal wsTicker As Worksheet, ByVal Ticker As String)
Dim cLastCell As Range

With wsTicker
    Set cLastCell = .Cells(.Rows.Count, 2).End(xlUp)
    
    With wsTicker.QueryTables.Add(Connection:= _
        "TEXT;http://real-chart.finance.yahoo.com/table.csv?s=" & Ticker & "&d=9&e=1&f=2016&g=d&a=0&b=1&c=2015&ignore=.csv" _
        , Destination:=cLastCell.Offset(1, 0))

        .Name = "table.csv?s=AAPL&d=4&e=10&f=2016&g=d&a=11&b=12&c=1980&ignore="
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 850
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
'    If .Cells(.Rows.Count, 1).End(xlUp).Row > 1 Then
'        .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).EntireRow.Delete
'    End If
    .Range(.Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0), .Cells(.Rows.Count, 2).End(xlUp).Offset(0, -1)).Value = Ticker
End With
    
End Sub


Sub Ticker_ERstellen()
Dim wsKuerzel As Worksheet
Dim rTicker As Range
Dim cTicker As Range

Set wsKuerzel = ThisWorkbook.Worksheets("Kurskuerzel")
Set wsTicker = ThisWorkbook.Worksheets("Tabelle1")
wsTicker.Cells.ClearContents
With wsKuerzel
    Set rTicker = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
    For Each cTicker In rTicker.Cells
        'Set wsTicker = ThisWorkbook.Worksheets.Add(Before:=wsKuerzel)
        With wsTicker
'            On Error Resume Next
'            .Name = cTicker.Value
'            If Err.Number = 9 Then
'                Err.Clear
'                .Name = Left(cTicker.Value & Now(), 31)
'            End If
            sTicker = cTicker.Value
            Call Kurse_Aktualisieren(wsTicker, sTicker)
        End With
    Next cTicker
End With
Set wsTicker = Nothing

End Sub
 
Zurück
Oben