TFinance
/
stock.py
44 строки · 1.4 Кб
1import datetime
2import json
3import os
4
5import pandas_datareader as pdr
6import requests
7
8HEADERS = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0'}
9
10
11# Загрузка списка всех акций.
12def load_stocks(file_name: str) -> dict:
13wd = os.getcwd()
14if os.path.exists(f'{wd}/{file_name}'):
15with open(f'{wd}/{file_name}') as f:
16return json.load(f)
17return {}
18
19
20# Проверка на существование акции.
21def check_stock(stock_name: str) -> bool:
22try:
23current_date = datetime.datetime.today()
24p_date = datetime.datetime.today() - datetime.timedelta(days=30)
25stock = pdr.get_data_yahoo(stock_name, start=p_date, end=current_date)
26if stock['Close'][-2]:
27return True
28except Exception:
29return False
30
31
32# Сохранение списка акций в json.
33def save_stocks(file_name: str, stocks: list):
34wd = os.getcwd()
35with open(f'{wd}/{file_name}', "w") as f:
36json.dump({'stocks': stocks}, f)
37
38
39# Получение списка акций и их сохранение.
40def get_all_stocks():
41url = 'https://api.nasdaq.com/api/screener/stocks?tableonly=true&limit=6000&exchange=NASDAQ'
42stocks = requests.get(url, headers=HEADERS).json().get('data').get('table').get('rows')
43stocks = [i.get('symbol') for i in stocks]
44save_stocks('stocks.json', stocks)
45