Sunday, October 9, 2016

Descarga De Datos Históricos Intradía Google Con Python

Descarga de datos históricos intradía Google con Python 19 de diciembre 2011 Hasta ahora, en mis posts anteriores, hemos estado descargando precios de las acciones todos los días de los sitios conocidos de Yahoo y Google. Ambos sitios ofrecen fácil acceso a los datos históricos diaria gratuita. Ambos sitios también ofrecen buenas cartas de los precios de las acciones. Pero algunos de ustedes pueden haber notado gráficos de Google no sólo los precios diarios que, pero también trazar precios INTRADÍA a dos minutos resolución. Sin embargo, no hay enlaces publicados para obtener los datos en bruto utilizados para construir las listas de éxitos. Gorrón. Vamos a hacer un poco de investigación y ver qué podemos averiguar. Para aquellos de ustedes con el excelente navegador Chrome, se ha construido en la utilidad de examinar prácticamente todos los aspectos de una página web (o sitio). Se llama Herramientas de Desarrollo. Se puede iniciar haciendo clic en el icono de llave inglesa en la esquina superior derecha, seleccione Herramientas, luego Herramientas de Desarrollo (o simplemente Ctrl + Shift + I). Esta utilidad tiene una enorme cantidad de funcionalidad, pero estamos interesados ​​principalmente en el tráfico de la red una página genera. Así que vamos a empezar tirando de la página de resumen de Google Finanzas para AAPL. A continuación, iniciar las herramientas de desarrollo y hacer clic en la ficha Red. Por último, en el gráfico de AAPL, haga clic en el enlace de intervalo de 2 minutos. En la parte inferior de la página será una lista de todas las solicitudes de red que se generaron haciendo clic en el enlace de 2min. En cuanto a ellos, hay uno llamado getprices. Esto se ve muy prometedor! Ahora haga clic en ese enlace y luego en la pestaña de respuesta a lo largo de la parte superior para ver cuál es la respuesta del servidor fue a la solicitud. Esto es lo que mi navegador parecía: Los datos que nos interesa tiene este aspecto: Ahora estamos llegando a alguna parte! Eso seguro se parece a los datos de precios y de volumen, junto con algún tipo de sello de tiempo y una lista de las compensaciones. Esto es lo que el enlace se parecía a: Si copiamos ese enlace y ponerlo directamente en la barra de url de nuestro navegador, podemos obtener el conjunto de datos completo. Parece que tiene algunos datos de cabecera, seguido de una lista de precios. Las fechas parecen consistir en un valor de tiempo periódica seguido por una serie de desplazamientos. Así que hay dos cosas que averiguar. En primer lugar tenemos que descifrar la cadena url tal como lo hicimos para los datos diarios, y entonces tenemos que decodificar los datos del sello de tiempo en los resultados devueltos. Vamos a abordar la cadena url primero. Lo haremos al igual que los otros dos intentos anteriores. Terminamos con: La url base es google / Finanzas / getprices q es el símbolo (AAPL) x es el intercambio (NASD) i es el intervalo en segundos (120 = segundos = 2 minutos) sesiones se solicita la sesión (ext_hours) p es el período de tiempo (5d = 5 días) f es los campos solicitados (d, c, v, o, h, l) df. (CPCT) auto . (1) ts es potencialmente una marca de tiempo (1324323553 905) Una vez más, he pasado algún tiempo jugando con los parámetros de consulta y encontré que usted puede conseguir lejos con sólo el q, i, p, y f. Un url simplificado (para obtener 10 días de datos AAPL 5 minutos) se parece a esto: Siga adelante y haga clic en el enlace para probarlo. Ahora podemos descargar los datos intradía durante un período específico en el tiempo. Puede haber una manera de conseguir que entre dos fechas, pero yo no he averiguado todavía. Si alguien sabe, estoy seguro que estaría interesado en saber cómo. El siguiente problema es averiguar cómo tratar con los formatos de fecha extraños. En datos devueltos en el ejemplo anterior, tengo a1323181800 en el primer campo de fecha y moviéndose hacia abajo, la última un número prefijado muestra fue a1324045800. Aquellos mirar sospechosamente a Unix marcas de tiempo para mí. Todos los principales lenguajes de programación los apoyan y son simplemente el número de segundos desde 01/01/1970. Una vez más, el uso de mi amigo Google, encontré un convertidor en línea marca de tiempo Unix y conecté los números anteriores (sin la a). Tengo: mar, 06 de diciembre 2011 14:30:00 GMT y viernes, 16 de diciembre 2011 14:30:00 GMT para la segunda. ¡Bingo! Son Unix marcas de tiempo. Y los datos parecen ser listados con los más antiguos primero. Por lo tanto, para obtener la fecha de cada marca de tiempo, sólo tenemos que convertir cualquier unos tiempos prefijados al tiempo Unix, entonces para cada vez tener éxito, añadimos el desplazamiento multiplicado por el número de segundos de intervalo a la última vez Unix registrado hasta que obtener una nueva vez el prefijo. Suena mucho más complicado de lo que realmente es. Puesto que soy sólo está interesado en los valores DOHLC, voy a ignorar los campos de cabecera en nuestra base de datos. Y puesto que este post está recibiendo bastante largo, voy a presentar a la clase Python que escribí para analizar los datos: Debe ser bastante explica por sí mismo. La principal diferencia entre esta clase y los demás es que es tiene un intervalo (en segundos) y una vista al pasado (en días) en lugar de una hora de inicio / finalización. Ignoro los primeros cinco campos de cabecera, a continuación, comprobar si hay campos de fechas prefijadas con un a. Mantengo un registro de la desviación y calcular la fecha correcta con la línea: Hay una última parte difícil: Observe que los datos OHLC aparece en un formato no estándar. En realidad, se devuelve como CHLO, no importa qué orden aparecen los campos de f. Debe tenerse en cuenta que parece que no es sólo el más reciente de 10-20 días de datos intradía disponibles en cualquier momento dado. Compre hey, ¿qué es lo que quieres para nada! Más tarde, vamos a tratar de encontrar algunas cosas interesantes que hacer con estos datos y estas limitaciones. Y, por último, un ejemplo completo: google_intraday. py


No comments:

Post a Comment