TFinance

Форк
0
/
stock.py 
44 строки · 1.4 Кб
1
import datetime
2
import json
3
import os
4

5
import pandas_datareader as pdr
6
import requests
7

8
HEADERS = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0'}
9

10

11
# Загрузка списка всех акций.
12
def load_stocks(file_name: str) -> dict:
13
    wd = os.getcwd()
14
    if os.path.exists(f'{wd}/{file_name}'):
15
        with open(f'{wd}/{file_name}') as f:
16
            return json.load(f)
17
    return {}
18

19

20
# Проверка на существование акции.
21
def check_stock(stock_name: str) -> bool:
22
    try:
23
        current_date = datetime.datetime.today()
24
        p_date = datetime.datetime.today() - datetime.timedelta(days=30)
25
        stock = pdr.get_data_yahoo(stock_name, start=p_date, end=current_date)
26
        if stock['Close'][-2]:
27
            return True
28
    except Exception:
29
        return False
30

31

32
# Сохранение списка акций в json.
33
def save_stocks(file_name: str, stocks: list):
34
    wd = os.getcwd()
35
    with open(f'{wd}/{file_name}', "w") as f:
36
        json.dump({'stocks': stocks}, f)
37

38

39
# Получение списка акций и их сохранение.
40
def get_all_stocks():
41
    url = 'https://api.nasdaq.com/api/screener/stocks?tableonly=true&limit=6000&exchange=NASDAQ'
42
    stocks = requests.get(url, headers=HEADERS).json().get('data').get('table').get('rows')
43
    stocks = [i.get('symbol') for i in stocks]
44
    save_stocks('stocks.json', stocks)
45

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.