我使用yahoo finance(Python中的yfinance库)获取加密对的每日打开、关闭、体积、最小值和最大值
我发现数据在UTC 00:00(关闭/打开时间)重置,但新行仅在UTC 02:00添加。我需要最近一天00:00的数据
有什么办法可以解决这个问题吗?我想我可以得到到目前为止每分钟或每小时的数据,并总结数量
pricedata = pdr.get_data_yahoo("BTC-ETH", start="2020-12-20", end="2020-12-22", interval = "1m")
我是否错过了在yfinance中实现这一点的更简单方法?还是一个更快速的API?我会使用alpha vantage,但他们不提供密码对的历史数据
更新
我可以为自己创建最后一天(19/12)的条目:
pricedata = pdr.get_data_yahoo(stock, start="2020-12-19", end="2020-12-20", interval = "1m")
关闭:
print(pricedata['Close'][-1])
开放式:
print(pricedata['Close'][0])
(非常接近但距离足够近)
高:
print(pricedata['High'].max())
低:
print(pricedata['Low'].min())
但音量似乎不起作用
print(pricedata['Volume'].sum())
给我50981730304,而每日报告值为12830893778。 如果我得到的是小时值的总和而不是分钟值,那么我得到的是21111141888。还很远
我想其中一个“黑客”就是获取当前的24小时音量。但如果我在协调世界时01:00得到它,它将已经是“scewed”。老实说,我宁愿使用一个适当的API,它与日常历史记录同步:)
到目前为止,我已经实施了这一修正,尽管它可以改进一点(音量,只有在UTC 00:00检索时才能工作,因为我还没有弄清楚如何在不延迟2小时的情况下“返回”该音量):
yesterday = datetime.strptime(_end, '%Y-%m-%d').date() - timedelta(days=1)
yesterdayf = yesterday.strftime('%Y-%m-%d')
# TODO check if between 8-10:15am UTC
# TODO what if it exists but is not complete
if yesterdayf not in hist.index:
print("not in index")
finedata = pdr.get_data_yahoo(symbol, start=yesterdayf, end=_end, interval="1m")
c = finedata['Close'][-1]
o = finedata['Close'][0]
h = finedata['High'].max()
l = finedata['Low'].min()
yticker = yf.Ticker(symbol)
v = yticker.info['volume24Hr']
print (c)
print (o)
#create dataframe
add = pd.DataFrame({'Open':o, 'High':h, 'Low':l, 'Close':c,'Adj Close':c, 'Volume':v}, index=[yesterday])
#concatenate
hist = pd.concat([hist, add])
print(hist.tail())
目前没有回答
相关问题 更多 >
编程相关推荐