Есть ли способ ускорить рекурсивную загрузку финансовых данных Yahoo и сравнить их с выбранными данными, используя pandas, особенно для 100 000 акций? - PullRequest
0 голосов
/ 17 марта 2020

В настоящее время я новичок в StackOverflow, и мне понадобятся ваши знания по следующему вопросу. В настоящее время я пытаюсь создать функцию, которая загружает данные и преобразует их во фрейм данных с помощью Panda, но проблема с финансами Yahoo заключается в том, что не все тикеры (символы) для всех акций могут загружать данные, поэтому мне нужно обработать через 100 000 акций и выбросьте тот, который не работает, и используйте тот, который работает. Я хочу найти способ оптимизации этой функции, но на данный момент я не смог обработать более 1000 акций в час, используя только мой процессор. Я попытался изменить функцию и оптимизировать как можно лучше, но это самое лучшее, что я могу сделать, а также использовать графический процессор для его обработки (это была неудачная попытка, поскольку использование графического процессора на этом невозможно.)

def findAllCorrWithSelectStock(selectStock,listOfStock,start,end,newList):
list_withCorr = []
working_List = []
chosenAsset = web.DataReader([selectStock],'yahoo',start,end)['Adj Close']
for stock in listOfStock:   
# Set DataFrame as the Stock Ticker

    try:

        temp = web.DataReader(stock,'yahoo',start,end)['Adj Close']      

        closing_df = pd.merge(temp, chosenAsset, left_index=True, right_index=True).rename(columns={'Adj Close': stock})
        x = closing_df.corr().iloc[0][selectStock]
        if math.isnan(x) :
            pass
        else:

            list_withCorr.append((stock,closing_df.corr().iloc[0][selectStock]))
            newList.append(stock)


    except:
        pass

srt = sorted(list_withCorr,key=lambda x: x[1], reverse=True)
return srt

проблема повторяется для всех oop, которые повторяют загрузку и сравнение данных. функция сгенерирует ранг наилучшим образом согласованного запаса с учетом выбранного запаса. Любая помощь будет признательна, и если есть какие-либо проблемы или проблемы, я вызвал вас, ребята, я очень сожалею заранее.

1 Ответ

0 голосов
/ 17 марта 2020

Это обрабатывает сравнение только одной акции со всеми остальными, верно?

Вы получаете все цены акций из Yahoo, один раз для каждой акции . Кэширование и повторное использование данных сократит время выполнения в 100 000 раз.

Если вы немного выполните поиск, я также несколько уверен, что вы также найдете некоторые торренты или другие хранилища исторических данных c. Открытый обмен стеками данных, вероятно, имеет указатели или одноименный поддредит.

И еще несколько нежелательных советов: вы не разбогатеете, найдя закономерности в ценах на акции. Тысячи людей работают над такими моделями, имеют доступ к гораздо большему количеству данных, вычислительной мощности и кандидатам. Все «сигналы» уже сняты с цен к тому времени, как они к вам дойдут, оставив вас с шумом.

...