Gdzie mogę pobrać dane historyczne dotyczące kapitalizacji rynku i dziennych obrotów dla akcji?

11

Istnieje wiele źródeł, które dostarczają historyczne dane o zapasach, ale podają tylko pola OHLC wraz z objętością i skorygowanym zamknięciem. Kilka źródeł, które znalazłem, dostarcza zestawów danych o kapitalizacji rynkowej, ale są one ograniczone do akcji w USA. Yahoo Finance udostępnia te dane w trybie online, ale nie ma możliwości ich pobrania (lub nie jestem tego świadomy).

  • Gdzie mogę pobrać te dane dotyczące akcji należących do różnych czołowych giełd papierów wartościowych w różnych krajach, używając ich nazwy giełdowej?
  • Czy istnieje jakiś sposób, aby pobrać go za pośrednictwem Yahoo Finance lub Google Finance?

Potrzebuję danych z ostatniej dekady i dlatego potrzebuję skryptu lub interfejsu API, który by to zrobił.

tejaskhot
źródło

Odpowiedzi:

3

Jeśli chodzi o zbieranie danych, możesz sprawdzić Quandl ( jeśli jesteś zainteresowany , jest samouczek korzystania z R z DataCamp ).

Ponadto Aswath Damodarana za strona zawiera wiele przydatnych zbiorów danych. Chociaż nie są one tak często aktualizowane, mogą być nadal przydatne, zwłaszcza jako punkt odniesienia do porównywania własnych wyników (ze skryptów nieuchronnie trzeba pisać, aby obliczyć niezbędne pomiary).

I znowu, Quant SE jest prawdopodobnie lepszym miejscem do szukania ...

Steve S.
źródło
1

Zrobiłbym to w ten sposób.

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)
POPIÓŁ
źródło