Estoy tratando de hacer un simulador del mercado de valores (quizás eventualmente se convierta en una IA predictiva), pero tengo problemas para encontrar datos para usar. Estoy buscando una fuente (con suerte gratis) de datos históricos del mercado de valores.
Idealmente, sería un conjunto de datos muy detallado (intervalo de segundo o minuto) con precio y volumen de cada símbolo en NASDAQ y NYSE (y quizás otros si me vuelvo aventurero). ¿Alguien sabe de una fuente para dicha información?
Encontré esta pregunta que indica que Yahoo ofrece datos históricos en formato CSV, pero no he podido averiguar cómo obtenerlos en un examen superficial del sitio vinculado.
Tampoco me gusta la idea de descargar los datos por partes en archivos CSV ... Me imagino que Yahoo se enojaría y me interrumpiría después de los primeros miles de solicitudes.
También descubrí otra pregunta que me hizo pensar que había ganado el premio gordo, pero desafortunadamente ese sitio de OpenTick parece haber cerrado sus puertas ... lástima, ya que creo que eran exactamente lo que quería.
También podría usar datos que solo abran / cierren el precio y el volumen de cada símbolo todos los días, pero preferiría todos los datos si puedo obtenerlos. ¿Cualquier otra sugerencia?
Respuestas:
Permítanme agregar mis 2 ¢, es mi trabajo obtener datos buenos y limpios para un fondo de cobertura, he visto bastantes fuentes de datos y proveedores de datos históricos. Esto se trata principalmente de datos de existencias de EE. UU.
Para empezar, si tiene algo de dinero, no se moleste en descargar datos de Yahoo, obtenga los datos del final del día directamente de los datos de CSI , aquí es donde Yahoo obtiene sus datos de EOD y AFAIK. Tienen una API donde puede extraer los datos al formato que desee. Creo que la suscripción anual de datos es de unos $ 100 dólares.
El principal problema con la descarga de datos de un servicio gratuito es que solo obtienes acciones que todavía existen, esto se llama Sesgo de supervivencia y puede darte resultados incorrectos si miras muchas acciones, porque solo incluirás las que lo hicieron así lejos y no los que fueron eliminados de la lista.
Para jugar con algunos datos intradiarios que vería en IQFeed , proporcionan varias API para extraer datos históricos, aunque son principalmente un conjunto para feeds en tiempo real. Pero aquí hay bastantes opciones, algunos corredores incluso proporcionan descargas de datos históricos a través de sus API, así que simplemente elige tu veneno.
PERO, por lo general, todos estos datos no están muy limpios, una vez que realmente comience de nuevo las pruebas, verá que faltan ciertas existencias o aparecen como dos símbolos diferentes, o las divisiones de existencias no se contabilizan correctamente, etc. Y luego se da cuenta de que el historial también se necesitan datos de dividendos, por lo que comienza a ejecutarse en círculos, parcheando datos de 100 fuentes de datos diferentes, etc. Por lo tanto, comenzar con una fuente de datos de "descuento" servirá, pero tan pronto como ejecute backtests más completos, podría tener problemas dependiendo de lo que haga. Si solo mira, digamos, las existencias del S&P 500, esto no será un problema y una alimentación intradía "barata" servirá.
Lo que no encontrará son datos intradía gratuitos. Quiero decir que puede encontrar algunos ejemplos, estoy seguro de que hay 5 años de datos de tics MSFT flotando, pero eso no lo llevará muy lejos.
Entonces, si necesita cosas reales (libro de pedidos de nivel II, todos los tics como han sucedido en todos los intercambios), una opción "asequible", pero excelente, es Nanex . En realidad, le enviarán un disco con terabytes de datos. Si no recuerdo mal, son alrededor de $ 3k-4K por año de datos. Pero confía en mí, una vez que comprendas lo difícil que es obtener buenos datos intradía, no pensarás que esto es mucho dinero.
No es para desanimarlo, pero obtener buenos datos es difícil, de hecho, muchos fondos de cobertura y bancos gastan cientos de miles de dólares al mes. para obtener datos en los que pueden confiar. Una vez más, puede comenzar en algún lugar y luego ir desde allí, pero es bueno verlo un poco en contexto.
Editar: La respuesta anterior es de mi propia experiencia. Este informe de Caltech sobre los datos disponibles proporcionará más información, y recomienda especialmente QuantQuote .
fuente
ESTA RESPUESTA YA NO ES EXACTA COMO EL ALIMENTO DE YAHOO HA DEJADO DE EXISTIR
¡Usando el enfoque CSV de Yahoo anterior también puede obtener datos históricos! Puede realizar ingeniería inversa en el siguiente ejemplo:
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
Esencialmente:
La lista completa de parámetros:
fuente
Sé que quería "gratis", pero consideraría seriamente obtener los datos de csidata.com por aproximadamente $ 300 / año, si fuera usted.
Es lo que Yahoo usa para suministrar sus datos.
Viene con una API decente, y los datos son (hasta donde puedo decir) muy limpios.
Obtiene 10 años de historia cuando se suscribe, y luego actualizaciones nocturnas después.
También se encargan de todo tipo de cosas desagradables, como divisiones y dividendos para usted. Si aún no ha descubierto la alegría de la limpieza de datos, no se dará cuenta de cuánto necesita esto, hasta la primera vez que su ATS (Sistema Automatizado de Comercio) piense que algunas acciones son realmente muy baratas, solo porque se dividieron 2 : 1 y no te diste cuenta.
fuente
Un conjunto de datos de cada símbolo en NASDAQ y NYSE en un intervalo de segundo o minuto será masivo .
Digamos que hay un total de 4000 compañías listadas en ambas bolsas (esto es probablemente muy bajo ya que hay más de 3200 compañías listadas en el NASDAQ). Para los datos en un segundo intervalo, suponiendo que haya 6.5 horas de negociación en un día, eso le daría 23400 puntos de datos por día por compañía, o aproximadamente 93,600,000 puntos de datos en total para ese día. Suponiendo 200 días de negociación en un año, eso es aproximadamente 18,720,000,000 puntos de datos por solo un año.
¿Quizás quieres comenzar con un set más pequeño primero?
fuente
Introducción:
desde yahoo puede obtener precios históricos de EOD (final del día) o precios en tiempo real. Los precios de EOD son increíblemente fáciles de descargar. Consulte mi blog para obtener explicaciones sobre cómo obtener los datos y ejemplos de código C #.
Estoy en el proceso de escribir un "motor" de datos en tiempo real que descarga y almacena los precios en tiempo real en una base de datos. Inicialmente, el motor podrá descargar precios históricos de Yahoo e Interactive Brokers y podrá almacenar los datos en una base de datos de su elección: MS SQL, MySQL, SQLite, etc. Es de código abierto, pero publicaré más información en mi blog cuando estoy más cerca de lanzarlo (dentro de un par de días).
Otra opción es eclipse trader ... le permite registrar los datos históricos con granularidad de tan solo 1 minuto y almacena los precios localmente en un archivo de texto. Básicamente, descarga los datos en tiempo real de Yahoo con un retraso de 15 minutos. Como quería una solución más sólida y estoy trabajando en un gran proyecto escolar para el que necesitamos datos, decidí escribir mi propio motor de alimentación de datos (que mencioné anteriormente).
Código de muestra:
Aquí hay un código de muestra C # que muestra cómo descargar datos en tiempo real:
Base de datos:
en el lado de la base de datos, utilizo una
OleDb
conexión con el archivo CSV para llenar un archivoDataSet
y luego actualizo mi base de datos real a través deDataSet
, básicamente permite hacer coincidir todas las columnas del archivo CSV devuelto por Yahoo directamente a su base de datos ( si su base de datos no admite inserciones por lotes de datos CSV, como SQLite). De lo contrario, insertar los datos es una línea ... simplemente inserte el CSV por lotes en su base de datos.Puede leer más sobre el formato de la URL aquí: http://www.gummy-stuff.org/Yahoo-data.htm
fuente
NASDAQ ofrece 10 años de datos históricos de EOD para cada símbolo
http://www.nasdaq.com/aspx/historical_quotes.aspx?symbol=AAPL&selected=AAPL
Puede automatizar el proceso de descarga de estos datos.
fuente
Para datos libres de sesgo de supervivencia, la única fuente confiable que he encontrado es QuantQuote ( http://quantquote.com )
Los datos vienen en minutos, segundos o resolución de tick, enlace a sus datos históricos de stock .
Hubo una sugerencia para kibot arriba. Haría una búsqueda rápida en Google antes de comprarlos, encontrarás muchas publicaciones como esta con advertencias sobre problemas de calidad de datos de kibot. También es revelador que su supuestamente libre de sesgos de supervivencia sp500 solo tiene 570 símbolos durante 14 años. Eso es prácticamente imposible, sp500 cambia por 1-2 símbolos por mes ...
fuente
Desafortunadamente, los datos históricos de ticker que son gratuitos son difíciles de obtener. Ahora que opentick está muerto, no conozco a ningún otro proveedor.
En una vida anterior trabajé para un hedgefund que tenía un sistema de comercio automatizado, y utilizamos profusamente los datos históricos.
Utilizamos TickData para nuestra fuente. Sus precios eran razonables y los datos tenían una resolución inferior a la segunda.
fuente
Hemos comprado 12 años de datos intradía de Kibot.com y estamos bastante satisfechos con la calidad.
En cuanto a los requisitos de almacenamiento: 12 años de datos de 1 minuto para todas las acciones de EE. UU. (Más de 8000 símbolos) es de aproximadamente 100 GB.
Con tick-by-tick, la situación de los datos es un poco diferente. Si solo registra el tiempo y las ventas, eso sería aproximadamente 30 GB de datos por mes para todas las acciones de EE. UU. Si desea almacenar los cambios de oferta / demanda junto con las transacciones, puede esperar alrededor de 150 GB por mes.
Espero que esto ayude. Avíseme si hay algo más en lo que pueda ayudarlo.
fuente
Permítanme agregar una fuente que acabo de descubrir, que se encuentra aquí .
Tiene muchos datos históricos de existencias en formato csv y fue recopilado por Andy Pavlo, quien según su página de inicio es un "Profesor Asistente en el Departamento de Informática de la Universidad Carnegie Mellon".
fuente
Mathematica hoy en día también ofrece acceso a los precios de acciones actuales e históricos, consulte http://reference.wolfram.com/mathematica/ref/FinancialData.html , si tiene una copia del mismo.
fuente
day
Puede usar Yahoo para obtener datos diarios (un conjunto de datos mucho más manejable) pero debe estructurar las URL. Ver este enlace . No está haciendo muchas solicitudes pequeñas, está haciendo menos solicitudes grandes. Una gran cantidad de software libre usa esto, por lo que no deberían apagarlo.
EDITAR: Este tipo lo hace, tal vez puedas echar un vistazo a las llamadas que hace su software.
fuente
Yahoo es la opción más simple para obtener datos gratuitos preliminares. El enlace descrito en la respuesta de eckesicle podría usarse fácilmente en un código de Python, pero primero necesita todos los tickers. Usaría la NYSE para este ejemplo, pero también se puede usar para diferentes intercambios.
He utilizado esta página wiki para descargar todos los teletipos de la compañía con la secuencia de comandos siguiente (no soy un Pythonist mucho talento, lo siento si este código no es muy eficiente):
Para descargar cada ticker utilicé otro script bastante similar:
Tenga en cuenta que el principal inconveniente de este método es que hay diferentes datos disponibles para diferentes compañías: las compañías que no tienen datos existentes en las fechas solicitadas (recién enumeradas) le proporcionarán una página 404.
También tenga en cuenta que este método solo es bueno para datos preliminares: si realmente desea probar su algoritmo, debe pagar un poco y usar un proveedor de datos confiable como CSIData u otros
fuente
¿Por qué no modelar una bolsa falsa con Brownian Motion?
Un montón de recursos para hacerlo. Fácil de implementar.
http://introcs.cs.princeton.edu/java/98simulation/
fuente
Yo uso el eodData.com. Tiene un precio bastante decente. Por 30 dólares al mes, obtienes 30 días de barras de 1,5 y 60 minutos para todos los intercambios de EE. UU. Y 1 año de datos de EOD para la mayoría de los demás.
fuente
Me gustaría rastrear finance.google.com (para las cotizaciones), o finance.yahoo.com.
Ambos devolverán páginas html para la mayoría de los intercambios en todo el mundo, incluidos los históricos. Entonces, solo es cuestión de analizar el HTML para extraer lo que necesita.
He hecho esto en el pasado, con gran éxito. Alternativamente, si no le importa usar Perl, hay varios módulos en CPAN que han hecho este trabajo por usted, es decir, extraer citas de Google / Yahoo.
Para más información, vea Historial de cotizaciones
fuente
Un antiguo proyecto mío iba a utilizar datos descargables libremente de EODData .
fuente
Eche un vistazo a la API de datos de valores históricos de Mergent: http://www.mergent.com/servius
fuente