Onde posso baixar dados históricos de capitalização de mercado e rotatividade diária de ações?

11

Existem muitas fontes que fornecem os dados históricos de estoque, mas eles fornecem apenas os campos OHLC, juntamente com o volume e o fechamento ajustado. Também encontrei algumas fontes que fornecem conjuntos de dados de valor de mercado, mas estão restritos a ações nos EUA. O Yahoo Finance fornece esses dados on-line, mas não há opção para baixá-los (ou nenhum que eu saiba).

  • Onde posso fazer o download desses dados para ações pertencentes a várias principais bolsas de valores nos países usando o nome do código?
  • Existe alguma maneira de fazer o download via Yahoo Finance ou Google Finance?

Preciso de dados para a última década ou mais e, portanto, preciso de algum script ou API que faça isso.

tejaskhot
fonte

Respostas:

3

No que diz respeito à coleta de dados, você pode conferir o Quandl (há um tutorial sobre como usá-lo com o R no DataCamp, se estiver interessado).

Além disso, o site do Aswath Damodaran contém muitos conjuntos de dados úteis. Embora eles não sejam atualizados com tanta frequência, eles ainda podem ser úteis, especialmente como uma referência para comparar sua própria saída (a partir dos scripts, você inevitavelmente precisará escrever para calcular as métricas necessárias).

E, novamente, o Quant SE é provavelmente um lugar melhor para se procurar ...

Steve S
fonte
1

Eu faria assim.

import requests
from bs4 import BeautifulSoup

base_url = 'https://finviz.com/screener.ashx?v=152&s=ta_topgainers&o=price&c=1,2,6,7,25,65,67'
html = requests.get(base_url)
soup = BeautifulSoup(html.content, "html.parser")
main_div = soup.find('div', attrs = {'id':'screener-content'})

light_rows = main_div.find_all('tr', class_="table-light-row-cp")
dark_rows = main_div.find_all('tr', class_="table-dark-row-cp")

data = []
for rows_set in (light_rows, dark_rows):
    for row in rows_set:
        row_data = []
        for cell in row.find_all('td'):
            val = cell.a.get_text()
            row_data.append(val)
        data.append(row_data)

#   sort rows to maintain original order
data.sort(key=lambda x: int(x[0]))

import pandas
pandas.DataFrame(data).to_csv("AAA.csv", header=False)
CINZA
fonte