有没有一种方法可以加快递归加载雅虎财经数据,并将其与使用Pandas选择的数据进行比较,特别是对于10万只股票

wko9yo5t  于 2023-02-11  发布在  其他
关注(0)|答案(1)|浏览(92)

我目前是新的StackOverflow,我需要你的专业知识,就以下事项。我目前正试图创建一个函数,加载数据,并将其转换为 Dataframe 使用Pandas,但雅虎金融的问题是,不是所有的股票代码(符号)对于所有的股票都可以加载数据,所以需要通过100、000的股票,丢弃不起作用的股票,使用起作用的股票。我想找到一种方法来优化这个函数,但目前,我无法处理超过1,000股票每小时只使用我的CPU。我试图改变功能和优化最好的,因为我可以,但这是我能做的最多,也使用GPU来处理它(这是一个失败的尝试,因为使用GPU在这是不可能的。)

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

这个问题对于重复加载和比较数据的循环来说是重复的。该函数将生成一个最佳相关股票的排名。任何帮助都将不胜感激,如果有任何问题或担心,我引起了你们,我很抱歉提前。

siv3szwd

siv3szwd1#

它只处理一只股票与其他股票的比较,对吗?
您正在从Yahoo检索所有股票价格,* 每只股票一次 *。缓存和重用数据将运行时间缩短100,000倍。
如果你稍微搜索一下,我也有信心你会找到一些历史股票数据的种子或其他存储库,开放数据栈交换可能有指针,或同名的subreddit。
再补充一些建议:你不可能通过寻找股票价格的模式而致富。成千上万的人在研究这样的模型,他们拥有更多的数据、处理能力和博士学位。当他们到达你身边时,所有的“信号”都已经从价格中剥离出来,留给你的是噪音。

相关问题