Как быстро получить сегодняшние цены закрытия всех акций в SPY500?

#python

#python

Вопрос:

Мне просто нужна сегодняшняя цена закрытия для всех акций в SPY500 или QQQ. Я использую DataReader(ticker, 'yahoo', start_date, end_date) . Даже получение данных за один день происходит очень медленно. Есть ли более быстрый способ быстро получить все данные о запасах? Я просто хотел бы знать, сколько акций выше EMA20 и каковы 10 лучших акций? Спасибо

 timenow=datetime.now()
previousday=datetime.today()-timedelta(1)
end_date = timenow.strftime("%Y-%m-%d") #"%Y-%b-%d-%b-(%H:%M:%S.%f)"
start_date=previousday.strftime("%Y-%m-%d")

# open file with tickers of each comapny
close_price_today_each={}
with open("sp500tickers.pickle", "rb") as f:
    tickers = pickle.load(f)
    for ticker in tickers:
        ticker=ticker[:-1]  # /n at the end
        print('Getting close price of ' ticker)
        df = data.DataReader(ticker, 'yahoo', start_date, end_date)
        close_price_today_each[ticker]=df['Close'].iloc[-1]
  

Комментарии:

1. Какая часть медленная? Совет по низко висящим фруктам: вы можете использовать import cPickle вместо import pickle , чтобы немного ускорить загрузку pickle, поскольку cPickle реализован на C, а не на Python.

2. Спасибо. Я думаю, что data.DataReader() работает медленно. Я попытался установить cPickle. Я получил ошибку pip install ОШИБКА cPickle: не удалось найти версию, удовлетворяющую требованию cPickle (из версий: нет) ОШИБКА: Не найден соответствующий дистрибутив для cPickle

3. В настоящее время (Python 3) правильной командой является import _pickle или для простоты import _pickle as pickle

4. в чем разница между import pickle и import _pickle? Спасибо