Quelle historischer Bestandsdaten [geschlossen]


239

Ich versuche, einen Börsensimulator zu erstellen (der sich möglicherweise zu einer vorhersagenden KI entwickelt), habe jedoch Probleme, Daten für die Verwendung zu finden. Ich suche nach einer (hoffentlich kostenlosen) Quelle historischer Börsendaten.

Im Idealfall handelt es sich um einen sehr feinkörnigen Datensatz (Sekunden- oder Minutenintervall) mit Preis und Volumen aller Symbole an NASDAQ und NYSE (und möglicherweise auch anderen, wenn ich abenteuerlustig werde). Kennt jemand eine Quelle für solche Informationen?

Ich habe diese Frage gefunden , die darauf hinweist, dass Yahoo historische Daten im CSV-Format anbietet, aber ich konnte bei einer flüchtigen Prüfung der verlinkten Website nicht herausfinden, wie ich sie erhalten kann.

Ich mag auch nicht die Idee, die Daten stückweise in CSV-Dateien herunterzuladen ... Ich kann mir vorstellen, dass Yahoo sich nach den ersten tausend Anfragen aufregen und mich ausschalten würde.

Ich habe auch eine andere Frage entdeckt , die mich glauben ließ, ich hätte den Jackpot geknackt, aber leider scheint die OpenTick-Site ihre Türen geschlossen zu haben ... schade, da ich denke, dass sie genau das waren, was ich wollte.

Ich könnte auch Daten verwenden, die jeden Tag nur den Preis und das Volumen jedes Symbols öffnen / schließen, aber ich würde alle Daten bevorzugen, wenn ich sie bekommen kann. Irgendwelche anderen Vorschläge?


4
@rmeador, Yahoo wird Sie nicht ausschalten, egal wie viele Anfragen Sie stellen, aber Google wird Sie ausschalten. Ich konnte in ca. 5-6 Stunden etwa 4 GB historische EOD-Preise von Yahoo herunterladen, ohne abgeschaltet zu werden. Das sind ungefähr 7.000 Aktien mit all ihren historischen EOD-Preisen seit ihrem Markteintritt. Weitere Informationen und einen Beispielquellcode finden Sie in meiner Antwort.
Kiril

Ich bin der Meinung, dass EOD-Daten nicht informativ genug sind. Wenn Sie Tick-by-Tick-Quotes und Trades wünschen, ist polygon.io meiner Meinung nach das günstigste.
Quinton Pike

Antworten:


226

Lassen Sie mich meine 2 ¢ hinzufügen, es ist meine Aufgabe, gute und saubere Daten für einen Hedgefonds zu erhalten. Ich habe ziemlich viele Datenfeeds und Anbieter historischer Daten gesehen. Hierbei handelt es sich hauptsächlich um US-Bestandsdaten.

Wenn Sie etwas Geld haben und sich nicht mit dem Herunterladen von Daten von Yahoo beschäftigen, erhalten Sie die Daten zum Tagesende direkt aus den CSI-Daten . Hier erhält Yahoo auch die EOD-Daten von AFAIK. Sie haben eine API, mit der Sie die Daten in ein beliebiges Format extrahieren können. Ich denke, das jährliche Abonnement für Daten beträgt ein paar 100 Dollar.

Das Hauptproblem beim Herunterladen von Daten von einem kostenlosen Dienst besteht darin, dass Sie nur noch vorhandene Bestände erhalten. Dies wird als Survivorship Bias bezeichnet und kann zu falschen Ergebnissen führen, wenn Sie sich viele Bestände ansehen, da Sie nur diejenigen einbeziehen, die dies gemacht haben weit und nicht diejenigen, die von der Liste gestrichen wurden.

Um mit einigen Intraday-Daten herumzuspielen , die ich in IQFeed untersuchen würde , bieten sie mehrere APIs zum Extrahieren historischer Daten, obwohl sie hauptsächlich ein Outfit für Echtzeit-Feeds sind. Aber hier gibt es einige Optionen, einige Broker bieten sogar Downloads historischer Daten über ihre APIs an. Wählen Sie also einfach Ihr Gift aus.

ABER normalerweise sind alle diese Daten nicht sehr sauber. Sobald Sie mit dem erneuten Testen beginnen, werden Sie feststellen, dass bestimmte Bestände fehlen oder als zwei verschiedene Symbole angezeigt werden oder Bestandsaufteilungen nicht ordnungsgemäß berücksichtigt werden usw. Und dann erkennen Sie, dass dies historisch ist Dividendendaten werden ebenfalls benötigt, sodass Sie im Kreis laufen und Daten aus 100 verschiedenen Datenquellen zusammenfügen können. Um mit einem "Rabatt" -Datenfeed zu beginnen, reicht dies aus. Sobald Sie jedoch umfassendere Backtests ausführen, können je nach Ihrer Tätigkeit Probleme auftreten. Wenn Sie sich nur die S & P 500-Aktien ansehen, wird dies jedoch weniger ein Problem sein, und ein "billiger" Intraday-Feed reicht aus.

Was Sie nicht finden, sind kostenlose Intraday-Daten. Ich meine, Sie werden vielleicht einige Beispiele finden. Ich bin sicher, dass irgendwo 5 Jahre MSFT-Tick-Daten herumschwirren, aber das wird Sie nicht sehr weit bringen.

Wenn Sie dann das echte Zeug benötigen (Auftragsbuch der Stufe II, alle Zecken, wie sie an allen Börsen aufgetreten sind), ist Nanex eine "erschwingliche", aber ausgezeichnete Option . Sie liefern Ihnen tatsächlich ein Laufwerk mit Terabyte an Daten. Wenn ich mich recht erinnere, sind es ungefähr 3.000 bis 4.000 US-Dollar pro Jahr an Daten. Aber glauben Sie mir, wenn Sie erst einmal verstanden haben, wie schwierig es ist, gute Intraday-Daten zu erhalten, werden Sie nicht glauben, dass dies überhaupt sehr viel Geld ist.

Es ist schwierig, Sie nicht zu entmutigen, sondern gute Daten zu erhalten. Viele Hedgefonds und Banken geben monatlich Hunderttausende von Dollar aus , um Daten zu erhalten, denen sie vertrauen können. Wieder können Sie irgendwo anfangen und dann von dort aus gehen, aber es ist gut, es ein bisschen im Kontext zu sehen.


Bearbeiten: Die Antwort oben ist aus meiner eigenen Erfahrung. Dieser Artikel von Caltech über verfügbare Daten-Feeds bietet weitere Einblicke und empfiehlt insbesondere QuantQuote .


18
+1 für den Hinweis auf die 3 Datenebenen (hist, intra, Ebene II) und für aufschlussreiche Kommentare zu den Antworten anderer (Vollständigkeit, Sauberkeit, Speichergröße, Datensätze ...)
Peter Host

2
CSI ist großartig, aber nur zu Ihrer Information, dekotierte Aktien sind jetzt ein Premium-Service, der nicht mehr in den Basispaketen enthalten ist. Nur zur Info.
Olie

1
CSI ist großartig, aber der Preis ist teuer. Wenn Sie Unfair Advantage verwenden, sind Sie an deren Anwendung gebunden. Es ist langweilig, es jeden Tag zu verwenden, um Ihren Verlauf zu aktualisieren. Wenn Sie mit CSI von http oder ftp herunterladen möchten, müssen Sie monatlich etwa 200 € bezahlen. Sorry, aber es ist zu teuer.
Davidxxx

@davidh, CSI Unfair Advantage verfügt über eine ActiveX-API, mit der Sie alle Daten Ihres Abonnements automatisch exportieren können. Das Schreiben eines robusten Exporteur-Tools dauert ungefähr einen Tag ... Wenn Sie eine billigere Alternative mit der gleichen Qualität wie CSI kennen, können Sie gerne eine Alternative veröffentlichen!
Lukebuehler

Hinweis zu QuantQuote: Sie überprüfen / bearbeiten Ihre Bestellung innerhalb von 48 Stunden nach dem Kauf. Falls Sie dachten, Sie hätten sofort Zugriff.
Fionbio

94

DIESE ANTWORT IST NICHT MEHR GENAU, WIE DAS YAHOO-FEED GEGEBEN HAT

Mit dem oben genannten CSV-Ansatz von Yahoo können Sie auch historische Daten abrufen! Sie können das folgende Beispiel zurückentwickeln:

http://ichart.finance.yahoo.com/table.csv?s=YHOO&d=0&e=28&f=2010&g=d&a=3&b=12&c=1996&ignore=.csv

Im Wesentlichen:

sn = TICKER
a = fromMonth-1
b = fromDay (two digits)
c = fromYear
d = toMonth-1
e = toDay (two digits)
f = toYear
g = d for day, m for month, y for yearly

Die vollständige Liste der Parameter:

a   Ask
a2  Average Daily Volume
a5  Ask Size
b   Bid
b2  Ask (Real-time)
b3  Bid (Real-time)
b4  Book Value
b6  Bid Size
c   Change & Percent Change
c1  Change
c3  Commission
c6  Change (Real-time)
c8  After Hours Change (Real-time)
d   Dividend/Share
d1  Last Trade Date
d2  Trade Date
e   Earnings/Share
e1  Error Indication (returned for symbol changed / invalid)
e7  EPS Estimate Current Year
e8  EPS Estimate Next Year
e9  EPS Estimate Next Quarter
f6  Float Shares
g   Day's Low
h   Day's High
j   52-week Low
k   52-week High
g1  Holdings Gain Percent
g3  Annualized Gain
g4  Holdings Gain
g5  Holdings Gain Percent (Real-time)
g6  Holdings Gain (Real-time)
i   More Info
i5  Order Book (Real-time)
j1  Market Capitalization
j3  Market Cap (Real-time)
j4  EBITDA
j5  Change From 52-week Low
j6  Percent Change From 52-week Low
k1  Last Trade (Real-time) With Time
k2  Change Percent (Real-time)
k3  Last Trade Size
k4  Change From 52-week High
k5  Percent Change From 52-week High
l   Last Trade (With Time)
l1  Last Trade (Price Only)
l2  High Limit
l3  Low Limit
m   Day's Range
m2  Day's Range (Real-time)
m3  50-day Moving Average
m4  200-day Moving Average
m5  Change From 200-day Moving Average
m6  Percent Change From 200-day Moving Average
m7  Change From 50-day Moving Average
m8  Percent Change From 50-day Moving Average
n   Name
n4  Notes
o   Open
p   Previous Close
p1  Price Paid
p2  Change in Percent
p5  Price/Sales
p6  Price/Book
q   Ex-Dividend Date
r   P/E Ratio
r1  Dividend Pay Date
r2  P/E Ratio (Real-time)
r5  PEG Ratio
r6  Price/EPS Estimate Current Year
r7  Price/EPS Estimate Next Year
s   Symbol
s1  Shares Owned
s7  Short Ratio
t1  Last Trade Time
t6  Trade Links
t7  Ticker Trend
t8  1 yr Target Price
v   Volume
v1  Holdings Value
v7  Holdings Value (Real-time)
w   52-week Range
w1  Day's Value Change
w4  Day's Value Change (Real-time)
x   Stock Exchange
y   Dividend Yield

Diese Seite enthält eine Tabelle mit speziellen Tags, die in der URL verwendet werden können.
user443854

9
Ein großes Problem beim Abrufen der Daten von Yahoo oder einem anderen Onlinedienst besteht darin, dass Sie keine dekotierten Aktien erhalten, sodass Sie schnell auf die Überlebensbias stoßen. Befolgen Sie besser Eric Hs oder meinen Rat und gehen Sie direkt zu CSI.
Lukebuehler

Diese Seite hatte früher eine Tabelle mit speziellen Tags, die in der URL verwendet werden können ... "Yahoo macht geltend, dass Ihre Verwendung und Verbreitung des Tools und des Inhalts unter ... einen Verstoß gegen die Abschnitte 6, 12 und 18 von darstellt Die Nutzungsbedingungen (unter anderem) führen zu unlauterem Wettbewerb und veranlassen andere, gegen die Nutzungsbedingungen zu verstoßen. ... Durch Eingriffe in diese vertraglichen und geschäftlichen Beziehungen können Sie möglicherweise die Fähigkeit anderer Benutzer beeinträchtigen, die Nutzungsbedingungen zu erhalten Vorteile der auf der Yahoo Finance-Website bereitgestellten Dienste ". Daumen runter auf Yahoo
Mustapha George

Ich habe die restlichen Schalter aus meinen Notizen hinzugefügt, die sich früher auf dieser Webseite befanden. Die Präsentation hier scheint nicht gegen die hier enthaltenen Nutzungsbedingungen zu verstoßen: Policies.yahoo.com/us/en/yahoo/terms/product-atos/apiforydn/… Yahoo muss über das ebenfalls vorhandene Excel- Datentool verärgert gewesen sein auf dieser Website verfügbar.
Fredrik E

2
Dieser Datenfeed ist nicht mehr.
MichaelICE

47

Ich weiß, dass Sie "kostenlos" wollten, aber ich würde ernsthaft in Betracht ziehen, die Daten von csidata.com für etwa 300 USD / Jahr zu erhalten, wenn ich Sie wäre.

Es ist das, was Yahoo verwendet, um ihre Daten zu liefern.

Es kommt mit einer anständigen API und die Daten sind (soweit ich das beurteilen kann) sehr sauber.

Sie erhalten 10 Jahre Geschichte, wenn Sie sich anmelden, und anschließend nächtliche Updates.

Sie kümmern sich auch um alle möglichen bösen Dinge wie Spaltungen und Dividenden für Sie. Wenn Sie die Freude an der Datenbereinigung noch nicht entdeckt haben, werden Sie erst erkennen, wie viel Sie benötigen, wenn Ihr ATS (Automated Trading System) zum ersten Mal der Meinung ist, dass einige Aktien wirklich sehr, sehr billig sind, nur weil sie sich aufteilen 2 : 1 und du hast es nicht bemerkt.


1
Welche Sprachen werden von ihrer API unterstützt?
user443854

1
Sie haben eine ActiveX-API, die Sie mit C ++ - Code oder C # oder was auch immer in Windows aufrufen können, um auf Ihre Daten zuzugreifen.
Lukebuehler

1
Interessant. Wie unterscheidet sich das Splits- und Dividendenhandling von Yahoo?
Matthew Lock

1
@MatthewLock Ich bin nicht zu 100% davon überzeugt, aber ich denke, Yahoo verwendet einen anderen Datenanbieter für "Unternehmensereignisse" und verwendet dann nur die CSI-Rohdaten, die durch die Unternehmensereignisse angepasst wurden. Dieser etwas alte Artikel gibt einen Einblick: amibroker.org/userkb/2007/09/23/yahoos-data-providers
lukebuehler

2
CSI ist großartig, aber nur zu Ihrer Information, dekotierte Aktien sind jetzt ein Premium-Service, der nicht mehr in den Basispaketen enthalten ist. Nur zur Info.
Olie

16

Ein Datensatz jedes Symbols an der NASDAQ und der NYSE in einem Sekunden- oder Minutenintervall wird massiv sein .

Nehmen wir an, an beiden Börsen sind insgesamt 4000 Unternehmen notiert (dies ist wahrscheinlich sehr niedrig, da an der NASDAQ über 3200 Unternehmen notiert sind). Bei Daten in einem zweiten Intervall, vorausgesetzt, es gibt 6,5 Handelsstunden pro Tag, erhalten Sie 23400 Datenpunkte pro Tag und Unternehmen oder insgesamt etwa 93.600.000 Datenpunkte für diesen einen Tag. Unter der Annahme von 200 Handelstagen pro Jahr sind dies ungefähr 18.720.000.000 Datenpunkte für nur ein Jahr.

Vielleicht möchten Sie zuerst mit einem kleineren Set beginnen?


2
Ich ging davon aus, dass die meisten Unternehmen nicht jede Sekunde gehandelt würden, sodass die Anzahl der Datenpunkte erheblich geringer wäre. Vielleicht ist das eine schlechte Annahme.
Trotzdem habe

Ein paar Monate Bestandsdaten für etwa 10 Symbole kamen auf 3 DVDs. Die Daten waren auch komprimierter Text.
Alan

1
@rmeador das stimmt, aber auch einige Aktien haben viel mehr Tagesvolumen als Sekunden an einem Tag, was bedeutet, dass sie mehr als einmal pro Sekunde gehandelt werden - und nicht alle Trades werden garantiert zum gleichen Preis gehandelt. Sie müssten sich also entscheiden, ob Sie sich für den Preis in regelmäßigen Abständen oder für den Handel interessieren
matt b

2
Wenn Sie das Ganze wollen, z. B. Level II-Quotes aller Börsen usw., sind es ein paar TBs für ein Jahr in einem suuuuper komprimierten Format (ca. 5 GB pro Handelstag). Wenn Sie nur winzige Daten speichern, ist es wirklich wenig, ungefähr 10 GB für 10 Jahre aller Aktien ...
Lukebuehler

16

Intro:
Von Yahoo können Sie historische EOD-Preise (End of Day) oder Echtzeitpreise erhalten. Die EOD-Preise sind erstaunlich einfach herunterzuladen. In meinem Blog finden Sie Erklärungen zum Abrufen der Daten sowie Beispiele für C # -Codes.

Ich bin gerade dabei, eine Echtzeit-Datenfeed-Engine zu schreiben, die die Echtzeitpreise herunterlädt und in einer Datenbank speichert. Die Engine kann zunächst historische Preise von Yahoo und Interactive Brokers herunterladen und die Daten in einer Datenbank Ihrer Wahl speichern: MS SQL, MySQL, SQLite usw. Es ist Open Source, aber ich werde mehr veröffentlichen Informationen in meinem Blog, wenn ich mich der Veröffentlichung nähere (innerhalb weniger Tage).

Eine weitere Option ist Eclipse Trader . Mit dieser Option können Sie die historischen Daten mit einer Granularität von nur 1 Minute aufzeichnen und die Preise lokal in einer Textdatei speichern. Grundsätzlich werden die Echtzeitdaten mit einer Verzögerung von 15 Minuten von Yahoo heruntergeladen. Da ich eine robustere Lösung wollte und an einem großen Schulprojekt arbeite, für das wir Daten benötigen, habe ich beschlossen, meine eigene Datenfeed-Engine zu schreiben (die ich oben erwähnt habe).

Beispielcode:
Hier ist ein Beispiel-C # -Code, der zeigt, wie Echtzeitdaten heruntergeladen werden:

public void Start()
{
    string url = "http://finance.yahoo.com/d/quotes.csv?s=MSFT+GOOG&f=snl1d1t1ohgdr";
    //Get page showing the table with the chosen indices
    HttpWebRequest request = null;
    IDatabase database =
        DatabaseFactory.CreateDatabase(
        DatabaseFactory.DatabaseType.SQLite);

    //csv content
    try
    {
        while (true)
        {
            using (Stream file = File.Create("quotes.csv"))
            {
                request = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
                request.Timeout = 30000;
                using (var response = (HttpWebResponse)request.GetResponse())
                using (Stream input = response.GetResponseStream())
                {
                    CopyStream(input, file);
                }
            }
            Console.WriteLine("------------------------------------------------");
            database.InsertData(Directory.GetCurrentDirectory() + "/quotes.csv");

            File.Delete("quotes.csv");
            Thread.Sleep(10000); // 10 seconds
        }
    }
    catch (Exception exc)
    {
        Console.WriteLine(exc.ToString());
        Console.ReadKey();
    }
}

Datenbank:
Auf der Datenbankseite verwende ich eine OleDbVerbindung zur CSV-Datei, um eine zu füllen, DataSetund aktualisiere dann meine eigentliche Datenbank über die DataSet. Dadurch ist es grundsätzlich möglich, alle Spalten aus der von Yahoo zurückgegebenen CSV-Datei direkt mit Ihrer Datenbank abzugleichen ( Wenn Ihre Datenbank keine Batch-Einfügungen von CSV-Daten unterstützt (z. B. SQLite). Andernfalls ist das Einfügen der Daten einzeilig. Fügen Sie die CSV-Datei einfach stapelweise in Ihre Datenbank ein.

Weitere Informationen zur Formatierung der URL finden Sie hier: http://www.gummy-stuff.org/Yahoo-data.htm


Ich wünschte, ich hätte das früher gefunden.
Ojblass

Liefert das tatsächlich Echtzeitdaten, wie Sie vorgeschlagen haben? Auf der Seite hat es diesen Parameter "k1", aber als ich das letzte Mal nachgesehen habe, hat es immer noch eine gewisse Verzögerung.
Antony

@Antony Die meiste Zeit gibt es eine Verzögerung, also hängt es nur davon ab, wie tolerant Sie gegenüber den Verzögerungen sind. Yahoo sagt, dass sie Echtzeitdaten bereitstellen, aber es ist sicherlich nicht für alle Ticker. Die Ticker, die nicht in Echtzeit sind, werden um bis zu 15 Minuten verzögert. Selbst wenn Sie einen Server an der Vermittlungsstelle am selben Ort haben, wird es NOCH "eine gewisse Verzögerung" geben . Was für eine Verzögerung sind Sie bereit zu tolerieren?
Kiril

Es ist nicht zuverlässig. Sagen Sie mir, warum funktioniert das gerade nicht ? Real-chart.finance.yahoo.com/… verwendet von Finance.yahoo.com/q/…
mmm

9

NASDAQ bietet 10 Jahre historische EOD-Daten für jedes Symbol

http://www.nasdaq.com/aspx/historical_quotes.aspx?symbol=AAPL&selected=AAPL

Sie können den Prozess des Herunterladens dieser Daten automatisieren.


Schöne Quelle. Sie haben das Anforderungssystem geändert, sodass jetzt alle Anforderungen mit JS verarbeitet werden (z . B. nasdaq.com/symbol/aapl/historical ). Gibt es eine Möglichkeit, dies zu automatisieren?
Anton Tarasenko

Ja, es ist möglich, es zu automatisieren. Sie müssen einen Sniffer wie Telerik verwenden und sehen, wie die Daten erhalten werden (über einen POST). Solange Sie die Post-Variablen richtig senden, sollten Sie die Daten erhalten.
Nick_F

1
Ist das noch verfügbar? Enthält es Intraday-Daten?
Lee

8

Die einzige zuverlässige Quelle, die ich gefunden habe, ist QuantQuote ( http://quantquote.com ).

Die Daten werden in Minuten-, Sekunden- oder Tick-Auflösung mit ihren historischen Bestandsdaten verknüpft .

Es gab oben einen Vorschlag für Kibot. Ich würde eine schnelle Google-Suche durchführen, bevor ich bei ihnen kaufe. Sie werden viele Beiträge wie diesen mit Warnungen vor Problemen mit der Kibot-Datenqualität finden. Es ist auch bezeichnend, dass ihr angeblich überlebensvoreingenommener sp500 sp500 seit 14 Jahren nur 570 Symbole hat. Das ist so gut wie unmöglich, sp500 ändert sich um 1-2 Symbole pro Monat ....


3
Kibot hat nur 3 freie Symbole. der Rest muss bezahlen! Er macht gerade Werbung
BouncingHippo

Die kostenlosen täglichen Daten von quantquote sind nicht dokumentiert: Die CSV-Dateien enthalten keine Spaltenüberschriften und überhaupt kein Dokument.
user443854

Es gibt eine Dokumentation, das Format entspricht im Wesentlichen den Datensätzen mit Minutenauflösung.
user788171

quantquote.com hat viele Fehler in den Daten
Ivelin

Sie bieten seit 1998 kostenlose, minutiöse Daten für IBM an. Das war gut genug für mich. Ich brauchte nur ein Symbol, um die Komprimierung zu testen: kibot.com/buy.aspx
Sergei Rodionov

7

Leider sind historische Tickerdaten, die kostenlos sind, schwer zu bekommen. Jetzt, wo opentick tot ist, kenne ich keinen anderen Anbieter.

In einem früheren Leben habe ich für einen Hedgefund gearbeitet, der über ein automatisiertes Handelssystem verfügte, und wir haben historische Daten ausgiebig verwendet.

Wir haben TickData als Quelle verwendet. Ihre Preise waren angemessen und die Daten hatten eine Auflösung von weniger als einer Sekunde.


6

Wir haben 12 Jahre Intraday-Daten von Kibot.com gekauft und sind mit der Qualität ziemlich zufrieden.

Was die Speicheranforderungen betrifft: 12 Jahre 1-Minuten-Daten für alle US-Aktien (mehr als 8000 Symbole) sind ungefähr 100 GB.

Bei Tick-by-Tick-Daten ist die Situation kaum anders. Wenn Sie nur Zeit und Umsatz erfassen, sind dies etwa 30 GB Daten pro Monat für alle US-amerikanischen Aktien. Wenn Sie Bid / Ask-Änderungen zusammen mit Transaktionen speichern möchten, können Sie mit etwa 150 GB pro Monat rechnen.

Ich hoffe das hilft. Bitte lassen Sie mich wissen, wenn ich Ihnen noch weiterhelfen kann.


1
Immer noch zufrieden mit KiBot @ boe100?
JaredBroad

@ boe100 Haben sie sowohl angepasste als auch nicht angepasste Preise? Haben sie Betas und Deltas?
user443854

Es sind sowohl angepasste als auch nicht angepasste Daten verfügbar. Es ist möglich, Ihre Daten mithilfe einer HTTP-API zu aktualisieren oder täglich neue Archive vom FTP-Server herunterzuladen. Es werden keine Betas oder Deltas berechnet.
Boe100

@ boe100 könnten Sie Ihre Daten teilen?
Tomasz Waszczyk

2
@Tomasz haha, Ihr Kommentar machte meinen Tag: D
Corneliu Maftuleac

6

Lassen Sie mich eine Quelle hinzufügen, die ich gerade entdeckt habe und die hier zu finden ist .

Es enthält viele historische Bestandsdaten im CSV-Format und wurde von Andy Pavlo gesammelt, der laut seiner Homepage ein "Assistenzprofessor am Institut für Informatik der Carnegie Mellon University" ist.


Dies ist ideal für alle, die einfach nur mit einem ausreichend großen Satz historischer Börsendaten herumspielen möchten.
Ciaran Gallagher

1
Webseite nach unten ...
Brethlosze



4

Sie können Yahoo verwenden, um tägliche Daten abzurufen (ein viel besser verwaltbarer Datensatz), aber Sie müssen die URLs strukturieren. Siehe diesen Link . Sie stellen nicht viele kleine Anfragen, sondern weniger große Anfragen. Viele freie Software verwendet dies, so dass Sie nicht heruntergefahren werden sollten.

EDIT: Dieser Typ macht es, vielleicht können Sie sich die Anrufe ansehen, die seine Software macht.


Zuerst dachte ich, dass dieser Link vielversprechend aussieht, aber ich kann anscheinend nicht herausfinden, wie man historische Daten spezifiziert ... es sieht so aus, als ob alles in Echtzeit ist. Vermisse ich etwas
rmeador

Du hast recht. Ich habe einen weiteren Link von jemandem mit Software hinzugefügt, der die historischen Dinge erledigt, damit ich weiß, dass es möglich ist. Vielleicht werfen Sie einen Blick auf die Anrufe, die seine Software macht.
Jimconstable

4

Yahoo ist die einfachste Option, um vorläufige kostenlose Daten zu erhalten. Der in der Antwort von eckesicle beschriebene Link könnte leicht in einem Python-Code verwendet werden, aber Sie benötigen zuerst alle Ticker. Ich würde die NYSE für dieses Beispiel verwenden, aber dies kann auch für verschiedene Börsen verwendet werden.

Ich habe diese Wiki-Seite verwendet , um alle Unternehmensticker mit dem folgenden Skript herunterzuladen (ich bin kein sehr talentierter Pythonist, sorry, wenn dieser Code nicht sehr effizient ist):

import string
import urllib2
from bs4 import BeautifulSoup

global f

def download_page(url):
    aurl = urllib2.urlopen(url)
    soup = BeautifulSoup(aurl.read())

    print url

    for row in soup('table')[1]('tr'):
        tds = row('td')
        if (len(tds) > 0):
            f.write(tds[1].string + '\n')


f = open('stock_names.txt', 'w')

url_part1 = 'http://en.wikipedia.org/wiki/Companies_listed_on_the_New_York_Stock_Exchange_'
url = url_part1 + '(0-9)'
download_page(url)

for letter in string.uppercase[:26]:
    url_part2 = letter
    url = url_part1 + '(' + letter + ')'

    download_page(url)

f.close()

Zum Herunterladen jedes Tickers habe ich ein anderes, ziemlich ähnliches Skript verwendet:

import string
import urllib2
from bs4 import BeautifulSoup


global f

url_part1 = 'http://ichart.finance.yahoo.com/table.csv?s='
url_part2 = '&d=0&e=28&f=2010&g=d&a=3&b=12&c=1996&ignore=.csv'

print "Starting"

f = open('stock_names.txt', 'r')
file_content = f.readlines()
count = 1;
print "About %d tickers will be downloaded" % len(file_content)

for ticker in file_content:
    ticker = ticker.strip()
    url = url_part1 + ticker + url_part2
    
    try:
        # This will cause exception on a 404
        response = urllib2.urlopen(url)

        print "Downloading ticker %s (%d out of %d)" % (ticker, count, len(file_content))

        count = count + 1
        history_file = open('C:\\Users\\Nitay\\Desktop\\Historical Data\\' + ticker + '.csv', 'w')
        history_file.write(response.read())
        history_file.close()

    except Exception, e:
        pass

f.close()

Beachten Sie, dass der Hauptnachteil dieser Methode darin besteht, dass für verschiedene Unternehmen unterschiedliche Daten verfügbar sind. Unternehmen, deren Daten zu den angeforderten Daten nicht vorhanden sind (neu aufgeführt), erhalten eine 404-Seite.

Beachten Sie auch, dass diese Methode nur für vorläufige Daten geeignet ist. Wenn Sie Ihren Algorithmus wirklich testen möchten, sollten Sie ein wenig bezahlen und einen vertrauenswürdigen Datenlieferanten wie CSIData oder andere verwenden


Das Einfügen einer globalen Deklaration in den globalen Namespace ist nicht erforderlich, eine gute Antwort jedoch.
Luke Taylor

1
Service down ...
Brethlosze

3

Warum nicht mit Brownian Motion eine gefälschte Börse modellieren?

Viele Ressourcen dafür. Einfach zu implementieren.

http://introcs.cs.princeton.edu/java/98simulation/


1
:-) Um es realer zu machen, müssten Sie eine fraktionierte Brownsche Bewegung erstellen, und selbst das ist nicht ganz real. Für die realistischsten gefälschten Marktdaten müssten Sie auch eine fraktale Zeitdimension haben ... Nadeln, um es zu sagen wird ziemlich kompliziert. Besser einfach echte Marktdaten kaufen ...
lukebuehler

Es hilft auch nicht, dass die Aktienbewegung nicht normal ist :)
Paul Milovanov

3

Ich benutze die eodData.com. Es ist ziemlich günstig. Für 30 Dollar im Monat erhalten Sie 30 Tage lang 1,5- und 60-Minuten-Bars für alle US-Börsen und 1 Jahr EOD-Daten für die meisten anderen.


2

Ich würde Finance.google.com (für die Zitate) crawlen - oder Finance.yahoo.com.

Beide geben HTML-Seiten für die meisten Börsen auf der ganzen Welt zurück, einschließlich historischer. Dann müssen Sie nur noch den HTML-Code analysieren, um das zu extrahieren, was Sie benötigen.

Ich habe dies in der Vergangenheit mit großem Erfolg getan. Wenn es Ihnen nichts ausmacht, Perl zu verwenden, gibt es im CPAN mehrere Module, die diese Arbeit für Sie erledigt haben - dh das Extrahieren von Zitaten aus Google / Yahoo.

Weitere Informationen finden Sie unter Angebotsverlauf


+1 Gegner der Perl-Module, sie machen das Abrufen der Daten super einfach
Matthew Lock


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.