fonte de dados históricos de estoque [fechado]

239

Estou tentando criar um simulador do mercado de ações (talvez eventualmente se torne uma IA de previsão), mas estou tendo problemas para encontrar dados para usar. Estou procurando uma fonte (espero que gratuita) de dados históricos do mercado de ações.

Idealmente, seria um conjunto de dados muito refinado (intervalo de segundo ou minuto) com preço e volume de cada símbolo na NASDAQ e NYSE (e talvez outros se eu for aventureiro). Alguém sabe de uma fonte para essa informação?

Encontrei essa pergunta que indica que o Yahoo oferece dados históricos em formato CSV, mas não consegui descobrir como obtê-los em um exame superficial do site vinculado.

Também não gosto da idéia de baixar os dados aos poucos em arquivos CSV ... Imagino que o Yahoo fique chateado e me desligue após os primeiros milhares de pedidos.

Também descobri outra pergunta que me fez pensar em ganhar o jackpot, mas infelizmente o site OpenTick parece ter fechado suas portas ... muito ruim, pois acho que eram exatamente o que eu queria.

Eu também seria capaz de usar dados que são apenas abrir / fechar preço e volume de todos os símbolos todos os dias, mas eu preferiria todos os dados, se puder obtê-los. Alguma outra sugestão?

rmeador
fonte
4
@rmeador, o Yahoo não o desligará, não importa quantos pedidos você faça, mas o Google o desligará. Consegui baixar cerca de 4 GB de preços históricos de EOD do Yahoo em cerca de 5 a 6 horas sem ser desligado. São cerca de 7.000 ações com todos os seus preços históricos de EOD desde que entraram no mercado. Veja minha resposta para mais informações e exemplo de código fonte.
Kiril
Sinto que os dados de EOD não são informativos o suficiente. Se você deseja cotações e negociações de tick-by-tick, acredito que polygon.io é o mais barato.
Quinton Pike

Respostas:

226

Deixe-me acrescentar meus 2 ¢, é meu trabalho obter dados bons e limpos para um fundo de hedge; já vi muitos feeds de dados e provedores de dados históricos. Isto é principalmente sobre dados de ações dos EUA.

Para começar, se você tiver algum dinheiro, não se preocupe com o download de dados do Yahoo, obtenha os dados do final do dia diretamente dos dados do CSI ; é aqui que o Yahoo obtém os dados de EOD e também o AFAIK. Eles possuem uma API na qual você pode extrair os dados para o formato que desejar. Acho que a assinatura anual de dados custa alguns US $ 100.

O principal problema com o download de dados de um serviço gratuito é que você só obtém ações que ainda existem, isso é chamado de Viés de Sobrevivência e pode fornecer resultados errados se você observar muitas ações, porque você incluirá apenas as que fizeram isso longe e não os que foram retirados da lista.

Para brincar com alguns dados intradiários que eu examinaria no IQFeed , eles fornecem várias APIs para extrair dados históricos, embora sejam principalmente uma roupa para feeds em tempo real. Mas aqui existem algumas opções, alguns corretores até fornecem downloads de dados históricos por meio de suas APIs, então escolha seu veneno.

MAS, geralmente, todos esses dados não são muito limpos. Quando você realmente começar a testar novamente, verá que algumas ações estão faltando ou aparecem como dois símbolos diferentes, ou que as divisões de ações não são contabilizadas adequadamente etc. E então você percebe que o histórico os dados de dividendos também são necessários e você começa a correr em círculos, juntando dados de 100 fontes de dados diferentes e assim por diante. Portanto, para começar com um "desconto", o feed de dados funcionará, mas assim que você executar backtests mais abrangentes, poderá ter problemas, dependendo do que fizer. Se você apenas olhar, digamos, as ações da S&P 500, isso não será um problema e será um feed intradiário "barato".

O que você não encontrará são dados intradiários gratuitos. Quero dizer, você pode encontrar alguns exemplos, tenho certeza de que existem 5 anos de dados de ticks MSFT flutuando, mas isso não o levará muito longe.

Então, se você precisar do material real ( carteira de pedidos de nível II, todos os ticks como ocorreram em todas as trocas), uma opção "acessível", mas excelente, é a Nanex . Eles realmente enviarão uma unidade com terabytes de dados. Se bem me lembro, são cerca de US $ 3k-4K por ano de dados. Mas confie em mim, depois de entender como é difícil obter bons dados intradiários, você não achará que isso é muito dinheiro.

Não é para desencorajá-lo, mas para obter bons dados é difícil, tão difícil que muitos fundos de hedge e bancos gastam centenas de milhares de dólares por mês para obter dados em que possam confiar. Novamente, você pode começar em algum lugar e depois partir de lá, mas é bom ver isso um pouco no contexto.


Edit: A resposta acima é da minha própria experiência. Este artigo da Caltech sobre feeds de dados disponíveis fornecerá mais informações e recomenda especialmente o QuantQuote .

lukebuehler
fonte
18
+1 por apontar os 3 níveis de dados (hist, intra, Nível II) e para comentários perspicazes sobre as respostas dos outros (integralidade, limpeza, tamanho de armazenamento, de conjuntos de dados ...)
Peter Anfitrião
2
O CSI é ótimo, mas apenas o FYI, os estoques excluídos agora são um serviço premium, não mais incluídos nos pacotes básicos. Apenas para sua informação.
Olie
1
O CSI é ótimo, mas o preço é caro. Se você usa o Unfair Advantage, está vinculado ao aplicativo deles. É chato usá-lo todos os dias para atualizar seu histórico. Se você deseja fazer o download do http ou ftp com o CSI, deve pagar cerca de 200 € por mês. Desculpe, mas é muito caro.
Davidxxx 14/03/2015
@davidh, o CSI Unfair Advantage possui uma API ActiveX onde você pode exportar todos os dados de sua assinatura automaticamente. Demora cerca de um dia para escrever uma ferramenta exportadora robusta ... Se você conhece uma alternativa mais barata com a mesma qualidade que a CSI, fique à vontade para postar uma alternativa!
Lukebuehler 16/03/2015
Nota sobre o QuantQuote: eles revisam / processam seu pedido dentro de 48 horas após a compra. Caso você tenha acesso imediato.
Fionbio 22/05
94

ESTA RESPOSTA NÃO ESTÁ MAIS PRECISA, COMO A ALIMENTAÇÃO YAHOO CEDOU EXISTIR

Usando a abordagem CSV do Yahoo acima, você também pode obter dados históricos! Você pode fazer a engenharia reversa do seguinte exemplo:

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

Essencialmente:

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

A 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
fonte
Esta página possui tags especiais de tabela que podem ser usadas no URL.
user443854
9
Um grande problema com a obtenção de dados do Yahoo, ou qualquer outro serviço online, é que você não obtém ações canceladas, de modo que rapidamente se depara com o viés de sobrevivência. É melhor seguir o conselho de Eric H. ou meu e ir direto para a CSI.
Lukebuehler
Esta página costumava ter uma tabela de tags especiais que podem ser usadas no URL ... "O Yahoo afirma que o uso e a distribuição da ferramenta e do conteúdo localizado em ... constituem uma violação das seções 6, 12 e 18 de os Termos de Serviço (entre outras disposições), gera concorrência desleal e induz outras pessoas a violarem os Termos de Serviço .... Ao interferir nessas relações contratuais e comerciais, você está prejudicando a capacidade de outros usuários obterem os Termos de Serviço. benefícios dos serviços prestados no site do Yahoo Finance ". Polegares para baixo no Yahoo
Mustapha George
Eu adicionei as opções restantes das minhas anotações, que costumavam ser encontradas nessa página da web. A apresentação dessas informações aqui não parece estar em violação dos Termos de Serviço encontrados aqui: policy.yahoo.com/us/en/yahoo/terms/product-atos/apiforydn/… O Yahoo deve ter ficado chateado com a ferramenta de dados do Excel que também era disponível nesse site.
Fredrik E
2
Este feed de dados não existe mais.
MichaelICE
47

Sei que você queria "grátis", mas consideraria seriamente obter os dados do csidata.com por cerca de US $ 300 / ano, se fosse você.

É o que o Yahoo usa para fornecer seus dados.

Ele vem com uma API decente e os dados são (até onde eu sei) muito limpos.

Você ganha 10 anos de história ao se inscrever e depois atualiza todas as noites.

Eles também cuidam de todo tipo de coisas desagradáveis, como divisões e dividendos para você. Se você ainda não descobriu a alegria da limpeza de dados, não perceberá o quanto precisa disso, até a primeira vez em que seu ATS (Sistema Automatizado de Negociação) achar que algumas ações são realmente muito baratas, apenas porque dividiu 2 : 1 e você não percebeu.

Eric H.
fonte
1
quais idiomas são suportados por sua API?
user443854
1
eles têm uma API ActiveX que você pode chamar com código c ++ ou C # ou qualquer outra coisa do windows para acessar seus dados.
Lukebuehler
1
Interessante. Como a manipulação de dividendos e dividendos difere do Yahoo?
Matthew Bloqueio
1
@MatthewLock Eu não sou 100% sobre isso, mas acho que o Yahoo usa um provedor de dados de "eventos corporativos" diferente e, em seguida, apenas usa os dados CSI brutos ajustados pelos eventos corporativos. Este artigo um pouco velho dá algumas dicas: amibroker.org/userkb/2007/09/23/yahoos-data-providers
lukebuehler
2
O CSI é ótimo, mas apenas o FYI, os estoques excluídos agora são um serviço premium, não mais incluídos nos pacotes básicos. Apenas para sua informação.
Olie
16

Um conjunto de dados de todos os símbolos da NASDAQ e da NYSE em um intervalo de segundo ou minuto será massivo .

Digamos que haja um total de 4.000 empresas listadas em ambas as bolsas (provavelmente no lado mais baixo, pois existem mais de 3200 empresas listadas na NASDAQ). Para dados em um segundo intervalo, supondo que existam 6,5 horas de negociação em um dia, isso daria 23400 pontos de dados por dia por empresa, ou cerca de 93.600.000 pontos de dados no total naquele dia. Supondo 200 dias de negociação em um ano, são cerca de 18.720.000.000 pontos de dados por apenas um ano.

Talvez você queira começar com um conjunto menor primeiro?

matt b
fonte
2
Eu estava operando sob o pressuposto de que a maioria das empresas não seria negociada a cada segundo, portanto o número de pontos de dados seria significativamente menor. talvez seja uma suposição ruim. ainda assim, eu estava prevendo da ordem de 10s de GB por ano ...
rmeador
Um par de meses de dados de ações para 10 símbolos apareceu em 3 DVDs. Os dados também foram texto compactado.
Alan
1
@rmeador isso é verdade, mas também algumas ações têm muito mais volume diário do que o número de segundos em um dia, o que significa que são negociadas mais de uma vez por segundo - e nem todas as negociações têm o mesmo preço. Então você tem que decidir se você estiver interessado no preço em um intervalo, ou pelo comércio
matt b
2
Se você quiser a coisa toda, por exemplo, cotações de nível II de todas as trocas, etc., são algumas TBs por um ano em um formato extremamente compacto (cerca de 5 GB por dia de negociação). Se você só armazenar dados minutos é realmente pouco, sobre 10GBs para 10 anos de todos os estoques ...
lukebuehler
16

Introdução: No
yahoo, você pode obter preços históricos do EOD (final do dia) ou preços em tempo real. Os preços do EOD são incrivelmente simples de baixar. Veja meu blog para obter explicações sobre como obter os dados e exemplos de código C #.

Estou escrevendo um "mecanismo" de feed de dados em tempo real que baixa e armazena os preços em tempo real em um banco de dados. Inicialmente, o mecanismo poderá baixar preços históricos do Yahoo e Interactive Brokers e armazenar os dados em um banco de dados de sua escolha: MS SQL, MySQL, SQLite etc. É de código aberto, mas vou postar mais informações no meu blog quando eu chegar perto de liberá-lo (dentro de alguns dias).

Outra opção é o eclipse trader ... permite gravar os dados históricos com granularidade em apenas 1 minuto e armazena os preços localmente em um arquivo de texto. Ele basicamente baixa os dados em tempo real do Yahoo com um atraso de 15 minutos. Como eu queria uma solução mais robusta e estou trabalhando em um grande projeto escolar para o qual precisamos de dados, decidi escrever meu próprio mecanismo de feed de dados (que mencionei acima).

Código de exemplo:
Aqui está um código C # de exemplo que demonstra como baixar dados em tempo 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();
    }
}

Banco de dados:
no lado do banco de dados, eu uso uma OleDbconexão com o arquivo CSV para preencher um DataSete, em seguida, atualizo meu banco de dados real via DataSet, basicamente possibilita a correspondência de todas as colunas do arquivo CSV retornado do Yahoo diretamente para o banco de dados ( se seu banco de dados não suportar inserções em lote de dados CSV, como SQLite). Caso contrário, a inserção dos dados é de uma linha ... basta inserir em lote o CSV no seu banco de dados.

Você pode ler mais sobre a formatação do URL aqui: http://www.gummy-stuff.org/Yahoo-data.htm

Kiril
fonte
épico, eu gostaria de encontrar isso antes.
ojblass
Isso realmente fornece dados em tempo real, como você sugeriu? Na página, ele possui esse parâmetro "k1", mas da última vez que verifiquei, ainda há algum atraso.
Antony
@Antony na maioria das vezes há algum tipo de atraso, por isso depende apenas de como você é tolerante com os atrasos. O Yahoo diz que eles fornecem dados em tempo real, mas certamente não é para todos os tickers. Os tickers que não são em tempo real são atrasados ​​em até 15 minutos. Mesmo se você receber um servidor co-localizado na central, AINDA haverá "algum atraso" . Então, que tipo de atraso você está disposto a tolerar?
Kiril
Não é confiável. Diga-me, por que não faz este trabalho agora, por exemplo: real-chart.finance.yahoo.com/... usado a partir finance.yahoo.com/q/...
mmm
9

NASDAQ oferece 10 anos de dados históricos de EOD para cada símbolo

http://www.nasdaq.com/aspx/historical_quotes.aspx?symbol=AAPL&selected=AAPL

Você pode automatizar o processo de download desses dados.

Navi
fonte
Boa fonte. Eles mudaram o sistema de solicitações, agora todas as solicitações são processadas com JS (por exemplo, nasdaq.com/symbol/aapl/historical ). Existe alguma maneira de automatizar isso?
Anton Tarasenko
Sim, é possível automatizá-lo. Você precisa usar um sniffer como o Telerik e ver como os dados são obtidos (via POST). Contanto que você envie as variáveis ​​de postagem corretamente, você deverá obter os dados.
97717 Nick_F
1
Isso ainda está disponível? Ele contém dados intradiários?
29517 Lee
8

Para dados livres de viés de sobrevivência, a única fonte confiável que encontrei é o QuantQuote ( http://quantquote.com )

Os dados são fornecidos em minutos, segundos ou resolução de tick, vinculados aos dados históricos de estoque .

Houve uma sugestão para o kibot acima. Eu faria uma pesquisa rápida no Google antes de comprá-los. Você encontrará muitos posts como este com avisos sobre problemas de qualidade de dados do kibot. Também é revelador que o sp500 free supostamente viés de sobrevivência possui apenas 570 símbolos por 14 anos. Isso é praticamente impossível, o sp500 muda de um a dois símbolos por mês ....

user788171
fonte
3
O kibot possui apenas 3 símbolos gratuitos. o resto tem que pagar! ele está apenas fazendo propaganda
bouncingHippo
Os dados diários gratuitos do quantquote não são documentados: não há cabeçalhos de coluna nos arquivos csv e nenhum documento.
user443854
existe documentação, o formato é basicamente o mesmo que seus conjuntos de dados de resolução minuto.
user788171
quantquote.com tem muitos erros nos dados
Ivelin
Eles oferecem dados minuciosos gratuitos para a IBM desde 1998. Foi bom o suficiente para mim. Eu só precisava de um símbolo para compressão de teste: kibot.com/buy.aspx
Sergei Rodionov
7

Infelizmente, é difícil obter dados históricos de tickers gratuitos. Agora que o opentick está morto, não conheço outro fornecedor.

Em uma vida anterior, trabalhei para um hedgefund que possuía um sistema de negociação automatizado e usamos profusamente dados históricos.

Usamos TickData para nossa fonte. Seus preços eram razoáveis, e os dados tinham resolução abaixo de segundo.

Alan
fonte
6

Adquirimos 12 anos de dados intradiários da Kibot.com e estamos bastante satisfeitos com a qualidade.

Quanto aos requisitos de armazenamento: 12 anos de dados de 1 minuto para todas as ações dos EUA (mais de 8000 símbolos) são de cerca de 100 GB.

Com os dados de tick-by-tick, a situação é um pouco diferente. Se você registrar apenas tempo e vendas, seriam cerca de 30 GB de dados por mês para todas as ações dos EUA. Se você deseja armazenar alterações de lance / solicitação juntamente com transações, pode esperar cerca de 150 GB por mês.

Eu espero que isso ajude. Informe-me se houver mais alguma coisa com a qual possa ajudá-lo.

boe100
fonte
1
Ainda satisfeito com KiBot @ boe100?
JaredBroad
@ boe100 Eles têm preços ajustados e não ajustados? Eles têm betas e deltas?
user443854
Estão disponíveis dados ajustados e não ajustados. É possível atualizar seus dados usando uma API HTTP ou baixar novos arquivos diariamente do servidor FTP. Nenhum betas ou deltas são calculados.
boe100
@ boe100 você poderia compartilhar seus dados?
Tomasz Waszczyk
2
@Tomasz haha, o seu comentário fez o meu dia: D
Corneliu Maftuleac
6

Deixe-me adicionar uma fonte que acabei de descobrir, encontrada aqui .

Ele possui muitos dados históricos de ações no formato csv e foi coletado por Andy Pavlo, que, de acordo com sua página inicial, é um "professor assistente no departamento de ciência da computação da Carnegie Mellon University".

Noam
fonte
Isso é ótimo para quem simplesmente procura mexer com um conjunto suficientemente grande de dados históricos do mercado de ações.
Ciaran Gallagher
1
Página na web em baixo ... #
1100 Brethlosze
5

Atualmente, o Mathematica também oferece acesso aos preços das ações atuais e históricos, consulte http://reference.wolfram.com/mathematica/ref/FinancialData.html , se você tiver uma cópia dela.

Tom Wenseleers
fonte
5
o menor passo é #day
kirill_igum 19/05/2013
ha obrigado por me deixar saber - que não é de fato tão grande ...
Tom Wenseleers
4

Você pode usar o yahoo para obter dados diários (um conjunto de dados muito mais gerenciável), mas é necessário estruturar os URLs. Veja este link . Você não está fazendo muitos pedidos pequenos, está fazendo um número menor de pedidos grandes. Muitos softwares livres usam isso para que não o desliguem.

EDIT: Esse cara faz, talvez você possa dar uma olhada nas chamadas que o software faz.

jimconstable
fonte
a princípio, achei que o link parecia promissor, mas não consigo encontrar como especificar dados históricos ... parece que tudo é em tempo real. Estou esquecendo de algo?
Rmeador 16/04/09
você está certo. Eu adicionei outro link de alguém com software que faz coisas históricas, então eu sei que é possível. Talvez dê uma olhada nas ligações que o software faz.
27411 jimconstable
4

O Yahoo é a opção mais simples para obter dados gratuitos preliminares. O link descrito na resposta da eckesicle pode ser facilmente usado em um código python, mas você primeiro precisa de todos os tickers. Eu usaria a NYSE para este exemplo, mas isso também pode ser usado para diferentes trocas.

Usei esta página wiki para baixar todos os tickers da empresa com o seguinte script (não sou um Pythonist muito talentoso, desculpe se esse código não é muito 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 baixar cada ticker, usei outro script bastante semelhante:

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

Observe que a principal desvantagem desse método é que dados diferentes estão disponíveis para empresas diferentes - as empresas que não possuem dados nas datas solicitadas (listadas recentemente) obterão uma página 404.

Lembre-se também de que esse método é bom apenas para dados preliminares. Se você realmente deseja testar seu algoritmo, deve pagar um pouco e usar um fornecedor de dados confiável como CSIData ou outros.

Nitay
fonte
Colocar uma declaração global dentro do namespace global é desnecessário, mas é uma boa resposta.
Luke Taylor
1
Serviço para baixo ...
Brethlosze
3

Por que não modelar uma bolsa falsa com a Brownian Motion?

Muitos recursos para fazê-lo. Fácil de implementar.

http://introcs.cs.princeton.edu/java/98simulation/

Michael Thamm
fonte
1
:-) Para torná-lo mais real, você precisará criar um movimento browniano fracionário e, mesmo que isso não seja real, para os dados falsos mais realistas do mercado, você precisará ter também uma dimensão de tempo fractal ... agulhas para dizê-lo fica bastante complicado. Melhor comprar apenas dados reais de mercado ...
lukebuehler
Também não ajuda que o movimento de ações não é lognormal :)
Paul Milovanov
3

Eu uso o eodData.com. É bastante decentemente razoáveis. Por 30 dólares por mês, você recebe 30 dias de barras de 1,5 e 60 minutos para todas as trocas nos EUA e 1 ano de dados EOD para a maioria dos outros.

Dez Udezue
fonte
2

Eu rastrearia finance.google.com (para as cotações) - ou finance.yahoo.com.

Ambos retornarão páginas html para a maioria das trocas ao redor do mundo, incluindo histórico. Então, é apenas uma questão de analisar o HTML para extrair o que você precisa.

Eu fiz isso no passado, com grande sucesso. Como alternativa, se você não se importa em usar o Perl - existem vários módulos no CPAN que fizeram esse trabalho para você - ou seja, extrair citações do Google / Yahoo.

Para saber mais, consulte Histórico de cotações

Caos
fonte
+1 inimigo os módulos perl, eles fazem obter os dados super fácil
Matthew Bloqueio
1

Um antigo projeto meu usaria dados para download gratuito do EODData .

Shaggy Frog
fonte
1

Dê uma olhada na API de dados históricos de títulos de fusão - http://www.mergent.com/servius

Eugene Osovetsky
fonte