我目前是StackOverflow的新手,我需要您在以下方面的专业知识。 我目前正在尝试创建一个函数,使用Panda加载数据并将其转换为数据帧,但Yahoo finance的问题是并非所有股票的股票代码(symbol)都可以加载数据,因此我需要处理100000只股票,丢弃不起作用的股票,使用起作用的股票。 我想找到一种优化此功能的方法,但目前,我无法仅使用我的CPU处理每小时超过1000只股票。我试着改变功能并尽可能地优化,但这是我能做的最多的事情,并且使用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
对于重复加载和比较数据的循环来说,问题是重复的。 该函数将根据所选股票生成最佳相关股票的排名。 任何帮助都将不胜感激,如果我给你们带来了任何问题或担忧,我事先非常抱歉
这只处理一只股票与所有其他股票的比较,对吗
您正在从雅虎检索所有股票价格,每只股票一次。缓存和重用数据将使运行时间减少100000倍
如果你搜索一下,我也有点信心你也会找到一些torrents或其他历史股票数据存储库。开放数据stackexchange可能有指针,或同名的subreddit
再加上一些不请自来的建议:你不会通过发现股票价格的规律而致富。成千上万的人在这样的模型上工作,可以获得更多的数据、处理能力和博士学位。当价格到达你面前时,所有的“信号”都已经从价格中剥离,留给你的是噪音
相关问题 更多 >
编程相关推荐