Herunterladen von Google Intraday historischen Daten mit Python 19. Dezember 2011 So weit, in meinem früheren Beiträge, haben wir das Herunterladen DAILY Aktienkurse von den bekannten Websites, Yahoo und Google. Beide Standorte bieten eine sehr gute Anbindung an kostenlosen Tages historischen Daten. Beide Standorte bieten auch schöne Charts der Aktienkurse. Aber einige von euch vielleicht bemerkt, dass Google Charts nicht nur Tagespreise, aber auch Chart Intraday Preise nach unten, um 2 Minuten Auflösung. Allerdings gibt es keine veröffentlichten Links, um die Rohdaten verwendet werden, um die Charts zu bauen zu bekommen. Schade. Lets do ein wenig untersuchen und sehen, was wir herausfinden können. Für diejenigen von Ihnen mit Hilfe der ausgezeichneten Chrome-Browser, hat es eine in Gebrauchs gebaut, um praktisch alle Aspekte einer Web-Seite (oder Website) zu untersuchen. Es heißt Developer Tools. Es kann gestartet werden Sie auf das Schraubenschlüssel-Symbol in der oberen rechten Ecke, wählen Sie Extras, dann Developer Tools (oder einfach Strg + Umschalt + I). Dieses Dienstprogramm verfügt über eine enorme Menge an Funktionalität, aber wir hauptsächlich an jedem Netzwerkverkehr eine Seite generiert werden. Also fangen wir durch Hochziehen des Google Finanzen Übersichtsseite für AAPL. Dann starten Sie die Entwicklertools, und klicken Sie auf die Registerkarte Netzwerk. Schließlich auf dem Chart für AAPL, klicken Sie auf den 2min Intervall Link. Am unteren Rand der Seite wird eine Liste aller Netzwerkanforderungen, indem Sie auf den Link 2min erwirtschaftet wurden. Betrachtet man sie, gibt es eine namens getprices. Das sieht vielversprechend aus! Nun klicken Sie auf den Link und dann auf die Registerkarte Antwort entlang der Oberseite, um zu sehen, was der Server-Antwort war auf die Anfrage. Hier ist, was in meinem Browser sah aus wie: Die Daten, die wir interessiert sieht wie folgt sind: Jetzt sind wir irgendwo bekommen! Das sieht sicher wie Preis - und Mengendaten, zusammen mit irgendeiner Art von Zeitstempel und einer Liste von Offsets. Hier ist, was der Link sah aus wie: Wenn wir zu kopieren, dass Link und legen Sie sie direkt in der URL-Leiste unserer Browser, können wir den vollständigen Datensatz zu erhalten. Es scheint, einige Header-Daten, gefolgt von einer Liste der Preise haben. Die Daten scheinen einer periodischen Zeitwert, gefolgt von einer Reihe von Korrekturen bestehen. So gibt es zwei Dinge, um herauszufinden. Zunächst müssen wir die URL-Zeichenfolge, so wie wir für die tägliche Daten getan zu entziffern, und dann müssen wir die Zeitstempeldaten in den zurückgegebenen Ergebnissen zu decodieren. Lets ersten Angriff der URL-Zeichenfolge. Wir werden sie genau wie die anderen beiden bisherigen Versuche zu tun. Wir am Ende mit: Die Basis-URL ist google / Finanzen / getprices q ist das Symbol (AAPL) x ist der Austausch (NASD) i ist der Abstand in Sekunden (120 Sekunden = = 2 Minuten) Sitzungen wird die Sitzung beantragt (ext_hours) p ist die Zeitspanne (5d = 5 Tage) f die erforderlichen Felder (d, c, v, o, h, l) df. (CPCT) Auto . (1) ts ist potentiell ein Zeitstempel (1324323553 905) Auch verbrachte ich einige Zeit Herumspielen mit den Abfrageparameter und festgestellt, dass Sie weg mit nur q, i, p und f erhalten können. Eine vereinfachte URL (zum 10 Tagen nach 5 Minuten AAPL Daten zu erhalten) sieht so aus: Gehen Sie weiter und klicken Sie auf den Link, um es zu versuchen. Jetzt können wir Intraday-Daten für einen bestimmten Zeitraum in der Zeit zurück herunterladen. Möglicherweise gibt es eine Möglichkeit, es zwischen zwei beliebigen Daten zu bekommen, aber ich haben herausgefunden, dass noch. Wenn jemand weiß, ich sicher wäre daran interessiert, herauszufinden, wie. Das nächste Problem ist, herauszufinden, wie man mit den seltsamen Datumsformate behandeln. In Daten aus dem obigen Beispiel zurückkehrte, bekam ich a1323181800 in der ersten Datumsfeld und nach unten bewegt, der letzte ein Präfix Nummer angezeigt war a1324045800. Diejenigen aussehen verdächtig Unix Zeitstempel zu mir. Alle gängigen Programmiersprachen unterstützen sie, und sie seit dem 1.1.1970 sind einfach die Anzahl der Sekunden. Auch hier mit meinem Freund Google, fand ich einen Online-Unix-Zeitstempel-Konverter und eingesteckt in den obigen Zahlen (ohne a). Ich bekam: Di 6. Dezember 2011 14.30.00 GMT und Freitag, 16. Dezember 2011 14.30.00 GMT für die zweite. Bingo! Sie sind Unix-Zeitstempel. Und die Daten scheint mit dem ältesten zuerst aufgeführt werden. Also, um das Datum für jeden Zeitstempel zu erhalten, brauchen wir nur, um alle einem vorangestellten Zeiten auf den Unix-Zeit für jeden nachfolgenden Zeit zu konvertieren, dann fügen wir der Versatz durch die Anzahl der Intervall Sekunden bis zum letzten aufgezeichneten Unix Zeit multipliziert, bis wir erhalten Sie einen neuen ein Präfix Zeit. Es klingt viel komplizierter, als es wirklich ist. Da ich nur an den DOHLC Werte, werde ich die Header-Felder in unserem Datenbestand zu ignorieren. Und weil dieser Beitrag schon ziemlich lang ist, werde ich die Python-Klasse schrieb ich, um die Daten zu analysieren präsentieren: Es sollte ziemlich selbsterklärend sein. Der Hauptunterschied zwischen dieser Klasse und der andere ist, dass es dauert ein Intervall (in Sekunden) und einer Lookback (in Tagen) statt einer Start - / Endzeit. Ich ignoriere die ersten fünf Kopffelder, dann überprüfen Sie für Datumsfelder mit einem vorangestellt. Ich im Auge behalten den Offset und berechnen Sie das richtige Datum mit der Zeile: Es gibt eine letzte schwierige Teil: Beachten Sie, dass die OHLC Daten in einem Nicht-Standardformat aufgeführt. Es ist eigentlich wie CHLO zurückgegeben, unabhängig davon, in welcher Reihenfolge die f Felder aufgelistet. Es sollte beachtet werden, dass es scheint, dass es nur die jüngsten 10-20 Tage von untertägigen Daten zu einem bestimmten Zeitpunkt sein. Kaufen Sie hey, was denkst du an nichts fehlen! Später werden wir versuchen, einige interessante Dinge mit diesen Daten und diese Einschränkungen zu tun. Und schließlich, ein komplettes Beispiel: google_intraday. py
No comments:
Post a Comment