fuente de datos históricos de existencias [cerrado]

239

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?

rmeador
fuente
44
@rmeador, Yahoo no lo cerrará sin importar cuántas solicitudes realice, pero Google lo cerrará. He podido descargar aproximadamente 4 GB de precios históricos de EOD de Yahoo en aproximadamente 5-6 horas sin que me apaguen. Eso es alrededor de 7,000 acciones con todos sus precios históricos de EOD desde que se unieron al mercado. Vea mi respuesta para obtener más información y un código fuente de muestra.
Kiril
Siento que los datos de EOD no son lo suficientemente informativos. Si desea cotizaciones y transacciones tick-by-tick, creo que polygon.io es el más barato.
Quinton Pike

Respuestas:

226

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 .

lukebuehler
fuente
18
+1 por señalar los 3 niveles de datos (hist, intra, nivel II) y por comentarios perspicaces sobre las respuestas de otros (integridad, limpieza, tamaño de almacenamiento, de conjuntos de datos ...)
Peter Host
2
CSI es excelente pero, solo para su información, las acciones de la lista ahora son un servicio premium, que ya no se incluye en los paquetes básicos. Solo para tu información.
Olie
1
CSI es genial pero el precio es caro. Si utiliza la ventaja injusta, está obligado a su aplicación. Es aburrido usarlo todos los días para actualizar su historial. Si desea descargar desde http o ftp con CSI, debe pagar unos 200 € al mes. Lo siento, pero es demasiado caro.
davidxxx
@davidh, CSI Unfair Advantage tiene una API ActiveX donde puede exportar todos los datos de su suscripción automáticamente. Se tarda aproximadamente un día en escribir una herramienta exportadora sólida ... Si conoce una alternativa más barata con la misma calidad que CSI, ¡no dude en publicar una alternativa!
lukebuehler
Nota sobre QuantQuote: revisan / procesan su pedido dentro de las 48 horas posteriores a la compra. En caso de que pensara que tendría acceso inmediato.
fionbio
94

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:

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

La lista completa de parámetros:

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
Fredrik E
fuente
Esta página tiene una tabla de etiquetas especiales que se pueden usar en la URL.
user443854
99
Un gran problema para obtener los datos de Yahoo, o cualquier servicio en línea, es que no obtiene acciones de la lista, por lo que rápidamente se encontrará con el sesgo de supervivencia. Mejor sigue los consejos de Eric H. o mi y ve directamente a CSI.
lukebuehler
Esta página solía tener una tabla de etiquetas especiales que se pueden usar en la URL ... "Yahoo afirma que su uso y distribución de la herramienta y el contenido ubicado en ... constituye una violación de las secciones 6, 12 y 18 de los Términos de servicio (entre otras disposiciones), dan lugar a una competencia desleal e inducen a otros a incumplir los Términos de servicio ... Al interferir con estas relaciones contractuales y comerciales, está potencialmente perjudicando la capacidad de otros usuarios para obtener el beneficios de los servicios prestados en el sitio de Yahoo Finance ". Pulgares hacia abajo en Yahoo
Mustapha George
Agregué los interruptores restantes de mis notas, que solían encontrarse en esa página web. La presentación de estos aquí no parece infringir los ToS que se encuentran aquí: políticas.yahoo.com/ us/ en/ yahoo/ terms/product-atos/apiforydn/… Yahoo debe haber estado molesto por la herramienta de datos de Excel que también estaba disponible en ese sitio.
Fredrik E
2
Este feed de datos ya no existe.
MichaelICE
47

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.

Eric H.
fuente
1
¿Qué idiomas son compatibles con su API?
user443854
1
Tienen una API ActiveX a la que puede llamar con código C ++ o C # o lo que sea en Windows para acceder a sus datos.
lukebuehler
1
Interesante. ¿Cómo difiere el manejo de divisiones y dividendos de Yahoo?
Matthew Lock
1
@MatthewLock No estoy al 100% sobre esto, pero creo que Yahoo usa un proveedor de datos de "eventos corporativos" diferente y luego solo usa los datos crudos de CSI ajustados por los eventos corporativos. Este artículo un tanto viejo da una idea: amibroker.org/userkb/2007/09/23/yahoos-data-providers
lukebuehler
2
CSI es excelente pero, solo para su información, las acciones de la lista ahora son un servicio premium, que ya no se incluye en los paquetes básicos. Solo para tu información.
Olie
16

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?

mate b
fuente
2
Estaba operando bajo la suposición de que la mayoría de las empresas no se negociarían cada segundo, por lo que el número de puntos de datos sería significativamente menor. Quizás sea una mala suposición. aún así, fue la predicción del orden de 10 segundos de GB por año ...
rmeador
Un par de meses de datos de existencias para 10 símbolos similares llegaron en 3 DVD. Los datos también eran texto comprimido.
Alan
1
@rmeador es cierto, pero también algunas acciones tienen mucho más volumen diario que segundos en un día, lo que significa que operan más de una vez por segundo, y no todas las transacciones están garantizadas al mismo precio. Por lo tanto, tendría que decidir si está interesado en el precio a intervalos, o en el intercambio
matt b
2
Si desea todo, por ejemplo, cotizaciones de nivel II de todos los intercambios, etc., son unos pocos TB durante un año en un formato comprimido excelente (aproximadamente 5 GB por día de negociación). Si solo almacena datos minuciosos, es realmente poco, alrededor de 10 GB durante 10 años de todas las existencias ...
lukebuehler
16

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:

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();
    }
}

Base de datos:
en el lado de la base de datos, utilizo una OleDbconexión con el archivo CSV para llenar un archivo DataSety luego actualizo mi base de datos real a través de DataSet, 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

Kiril
fuente
épico desearía haber encontrado esto antes.
ojblass
¿Eso realmente proporciona datos en tiempo real como sugirió? Desde la página, tiene este parámetro "k1", pero la última vez que lo revisé, todavía tiene algún retraso.
Antony
@Antony la mayor parte del tiempo hay un retraso de algún tipo, por lo que solo depende de qué tan tolerante seas con los retrasos. Yahoo dice que proporcionan datos en tiempo real, pero ciertamente no es para todos los tickers. Los tickers que no son en tiempo real se retrasan hasta 15 minutos. Incluso si obtiene un servidor de ubicación conjunta en el intercambio, TODAVÍA habrá "algún retraso" . Entonces, ¿qué tipo de retraso está dispuesto a tolerar?
Kiril
No es confiable Dime, ¿por qué no funciona esto en este momento, por ejemplo: real-chart.finance.yahoo.com/... utilizar desde finance.yahoo.com/q/...
mmm
9

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.

Navi
fuente
Buena fuente Cambiaron el sistema de solicitud, por lo que ahora todas las solicitudes se procesan con JS (por ejemplo, nasdaq.com/symbol/aapl/historical ). ¿Hay alguna forma de automatizarlo?
Anton Tarasenko
Sí, es posible automatizarlo. Debe usar un sniffer como Telerik y ver cómo se obtienen los datos (a través de un POST). Siempre y cuando envíe correctamente las variables de publicación, debe obtener los datos.
Nick_F
1
¿Todavía está disponible? ¿Contiene datos intradía?
Lee
8

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 ...

usuario788171
fuente
3
kibot tiene solo 3 símbolos libres. el resto tiene que pagar! él solo está haciendo publicidad
rebotandoHippo
Los datos diarios gratuitos de quantquote no están documentados: no hay encabezados de columna en los archivos csv, y ningún documento en absoluto.
user443854
hay documentación, el formato es básicamente el mismo que el de sus conjuntos de datos de resolución por minuto.
user788171
quantquote.com tiene muchos errores en los datos
Ivelin
Ofrecen datos minuciosos gratuitos para IBM desde 1998. Fue lo suficientemente bueno para mí. Solo necesitaba un símbolo para probar la compresión: kibot.com/buy.aspx
Sergei Rodionov
7

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.

Alan
fuente
6

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.

boe100
fuente
1
¿Todavía satisfecho con KiBot @ boe100?
JaredBroad
@ boe100 ¿Tienen precios ajustados y no ajustados? ¿Tienen betas y deltas?
user443854
Tanto los datos ajustados como los no ajustados están disponibles. Es posible actualizar sus datos utilizando una API HTTP o descargar nuevos archivos del servidor FTP a diario. No se calculan betas ni deltas.
boe100
@ boe100 ¿podría compartir sus datos?
Tomasz Waszczyk
2
@Tomasz jaja, tu comentario me
alegró el
6

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".

Noam
fuente
Esto es ideal para cualquiera que simplemente busque perder el tiempo con un conjunto suficientemente grande de datos históricos del mercado de valores.
Ciaran Gallagher
1
Página web abajo ...
Brethlosze
5

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.

Tom Wenseleers
fuente
55
el paso de tiempo más pequeño esday
kirill_igum
ja, gracias por hacérmelo saber, eso no es tan bueno ...
Tom Wenseleers
4

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.

jimconstable
fuente
Al principio pensé que ese enlace parecía prometedor, pero parece que no puedo encontrar cómo especificar datos históricos ... parece que todo es en tiempo real. ¿Me estoy perdiendo de algo?
rmeador
tienes razón. He agregado otro enlace de alguien con software que hace las cosas históricas, así que sé que es posible. Quizás eche un vistazo a las llamadas que hace su software.
jimconstable
4

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):

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()

Para descargar cada ticker utilicé otro script bastante similar:

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()

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

Nitay
fuente
Poner una declaración global dentro del espacio de nombres global es innecesario, aunque de todos modos es una buena respuesta.
Luke Taylor
1
Servicio inactivo ...
Brethlosze
3

¿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/

Michael Thamm
fuente
1
:-) para hacerlo más real, necesitaría crear un movimiento browniano fraccionario e incluso eso no es del todo real, para los datos falsos más realistas del mercado necesitaría tener también una dimensión de tiempo fractal ... agujas para decirlo Se pone bastante complicado. Mejor solo compre datos reales del mercado ...
lukebuehler
Tampoco ayuda que el movimiento de existencias no sea lognormal :)
Paul Milovanov
3

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.

Dez Udezue
fuente
2

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

Caos
fuente
+1 a los módulos perl, hacen que obtener los datos sea muy fácil
Matthew Lock
1

Un antiguo proyecto mío iba a utilizar datos descargables libremente de EODData .

Rana peluda
fuente