2011-02-04 31 views
7

Estoy trabajando en mi proyecto de maestría y estoy buscando una cantidad sustancial de datos financieros sobre una empresa en particular.API de Java para datos financieros

Ejemplo: digamos "Apple". Quiero los precios históricos, los precios/proporciones actuales del mercado, los resultados trimestrales y las llamadas de los analistas.

Vi un par de publicaciones en StackOverflow sobre YQL. Creo que puedo obtener precios actuales y varias proporciones de Yahoo Finance de forma gratuita. Sin embargo, para otros datos, hay compañías como Thomson Reuters, Bloomberg, etc., pero parecen tener un sistema cerrado.

¿Dónde puedo obtener una API para obtener varios datos? ¿Hay algo que me ayude a obtener esa información? Estoy bien con los datos sin procesar también en cualquier formato. Lo que sea que pueda obtener ¿Podrían sugerirnos algún API?

Respuesta

1

Se trata de una financiación Yahoo datos históricos para "Apple"

http://in.finance.yahoo.com/q/hp?s=AAPL

Hay un enlace en la parte inferior para descargar los datos. Puede ser que esto podría ayudar

+0

Gracias. ¿Hay alguna forma programática? – Kunal

+0

Sería bastante trivial escribir un analizador para extraer los datos del html. – Joel

+0

@Joel: aún más fácil para un CSV. –

0

Realmente está preguntando por un servicio de datos financieros gratis ... en lugar de una API.

El problema es que los datos son un bien valioso. Probablemente les haya costado a los proveedores una gran cantidad de dinero configurar sus sistemas, y les cuesta aún más dinero mantener esos sistemas en funcionamiento. Naturalmente, quieren un rendimiento de su inversión, y lo hacen (en parte) vendiendo sus datos/servicios.

(En el caso de Yahoo, Google, etc., los datos se compran de otra persona, y Yahoo/Google estarán sujetos a restricciones sobre cómo pueden usarlo. Esas restricciones se reflejarán en los ToS respectivos; solo se les permite acceder a los servicios "para uso personal")

Creo que su mejor opción sería acercarse a un número de proveedores de datos financieros, y preguntar si pueden proporcionarle acceso gratuito (sujeto a las restricciones pueden querer imponer) a sus servicios de datos. Podrías tener suerte ...

+0

Hola gracias Stephen. En cambio, su API para el servicio de datos financieros, al igual que podemos obtener feeds de Twitter utilizando una API. Entiendo que les cueste. Puedo pagarles una tarifa. ¿Alguna compañía conocida? – Kunal

+0

Si todo lo que quiere es el lugar actual (10 minutos de retraso) y solo los precios de cierre diarios en la historia (sin datos intradiarios), entonces probablemente pueda obtenerlo gratis. Si necesita precios en tiempo real e historial de datos de comercio intradiario, probablemente pueda comprarlos en Bloomberg o en los propios intercambios. –

0

Has probado Google Finance API. (Por favor google); Lo estoy usando para rastrear mi cartera. ¿Podría intentar http://code.google.com/apis/finance/docs/finance-gadgets.html? Hay un ejemplo de widget personalizado y podría decirle si está ladrando bajo el árbol correcto.

+0

Hola. Vi eso. Quería usar esa información para el procesamiento de back-end. Parece que los gadgets financieros son solo para HTML – Kunal

+0

ooops ... en realidad no ... es un servicio basado en json. Puedes llamar esto en tu capa de servicio. Le pedí que mirara el widget, para que sepa si está obteniendo los datos que necesita. –

+0

Gracias. Quiere decir http://goo.gl/jsrFl. ¿No es más una gestión de cartera? – Kunal

3

Stephen tiene razón en el dinero, si realmente quiere una gran cantidad de datos, es probable que tenga que pagar por ello. Sin embargo

, he tenido éxito en mis propios proyectos privados mediante el uso de la "API" explicado aquí:

http://www.gummy-stuff.org/Yahoo-data.htm

He tirado hacia abajo todas las acciones del S P 500 & bastante a menudo, pero si alguna vez publicas esos datos, habla con yahoo. es probable que tengas que licenciarlo.

por cierto, todos estos datos está en formato CSV, a fin de obtener un lector CSV/convertidor etc. su fácil encontrar

+0

¿podría compartir un código fuente de yahoo-data.htm? –

0

buena datos no está libre. Es tan simple como eso. La razón es que todos los datos son finalmente autorizados por una bolsa como NYSE o NASDAQ.

Si puede obtener algo de dinero, los datos históricos de alta resolución están disponibles en Automated Trader.

También debe hablar con la escuela de negocios de su escuela. Si tienen maestros financieros/estudiantes de doctorado o maestros en ingeniería financiera, deberían tener grandes repositorios de datos de alta resolución para sus estudiantes.

Si hace su pregunta más detallada puedo proporcionar una respuesta más detallada.

0

Esto es algo que me pateo por lo menos una vez a la semana. Hace mucho tiempo, cuando Internet consistía en Gopher y todo eso, se podía iniciar sesión en servidores FTP en NASDAQ y NYSE, y descargar todo tipo de archivos de historial de existencias de forma gratuita. Lo había hecho, incluso lo había importado a una base de datos e hice algunas cosas con él ... pero eso fue probablemente hace 10 computadoras, ahora ya no está.

+0

¿Por qué dejaron de hacer eso ahora? – Kunal

+1

Porque se dieron cuenta de que podían cobrarle a las personas una gran cantidad de dinero por ello. – mezmo

1

voy a sugerir un par de APIs que tienen datos financieros que a veces es difícil de encontrar (por ejemplo, resultados trimestrales, las llamadas de analistas):

1) http://www.zacksdata.com/zacks-data-api 2) http://www.mergent.com/servius

Ambos tienen pruebas gratuitas disponibles .

(Revelación: Mi empresa gestiona tanto de estas API)

ejemplo
1
biblioteca

de Java en fase de desarrollo es IdylFin, que cuenta con métodos de conveniencia para descargar datos históricos.

Descargo de responsabilidad: soy el autor de esta biblioteca.

0

He abordado este problema en el pasado.

Para los datos del historial de precios, utilicé la API de yahoo. Cuando digo API, me refiero a que estaba haciendo una solicitud HTTP para obtener un archivo CSV de datos del historial de precios. Lamentablemente, eso solo le permite obtener datos de una empresa a la vez, durante un período de tiempo que especifique. Así que primero hice una lista de todos los símbolos de cotización, y repetí sobre eso, llamando a la API de yahoo para cada uno. Es posible que pueda encontrar un sitio web que enumere los símbolos de cotización también, y simplemente descargue periódicamente esa lista.

Haga esto con demasiada frecuencia y demasiado rápido, y su sitio web podría bloquearlo. Agregué un código para limitar la frecuencia con la que hice las solicitudes http. También persistí en mis datos para no tener que volver a obtenerlos. Siempre insistiría en la forma de datos en bruto/sin procesar, su código podría cambiar de maneras que dificulten el uso de cualquier otra cosa. Avro/Thrift podría ser una excepción, ya que estos admiten la evolución del esquema.

Para otros tipos de datos, es posible que no tenga ninguna API que le proporcione buenos archivos CSV. Tuve que lidiar con ese problema muchas veces. Aquí está mi consejo.

A veces, un sitio web llama a un servicio web tranquilo detrás de las escenas, puede descubrirlo mediante el uso de Firebug. A veces también requerirá ciertos encabezados, que también puede descubrir usando Firebug.

Si se ve obligado a trabajar con HTML, hay varias bibliotecas de Java que pueden ayudarlo. apache.commons.http es una biblioteca que puede usar para realizar fácilmente solicitudes http y manejar sus respuestas. Google también tiene una jarra de cliente http, que probablemente valga la pena investigar.

La API JSoup es excelente en el análisis de datos HTML, incluso cuando está mal formateado, y no XHTML. También funciona con XML. En lugar de atravesar o visitar nodos en la jerarquía de jsoup, aprenda XPath y utilícelo para seleccionar lo que desea. El sitio web puede cambiar periódicamente el formato de su página web, que debería ser fácil de manejar y corregir si está usando JSoup, y difícil de enfrentar de otra manera.

Si tiene que trabajar con JSON, use la biblioteca de Jackson para analizarlo.

Si tiene que trabajar con CSV, use la biblioteca OpenCSV para analizarlo y manejarlo.

Además, siempre almacene los datos en bruto y evite realizar solicitudes HTTP innecesarias para que no se bloquee. Me han bloqueado las finanzas de google un par de veces, pueden hacerlo. Afortunadamente, el bloque expira. Es posible que incluso desee agregar un período de espera aleatorio entre las solicitudes.

Cuestiones relacionadas