我在用Python编写代码时遇到了一个问题。这项任务是使用金融刻度数据绘制烛台条。首先,我从'Bid'“Ask”到“Open”,“High”,“Low”,“Close”(因为烛台需要这样的列)。 好吧,现在我解决了一些问题,现在又遇到了新问题。下面这句话是很多我不明白的错误之一:
ValueError: Cannot convert -1 to a date. This often happens if non-datetime
values are passed to an axis that expects datetime objects.
当我试图打印特别是日期时间时,我得到的是:
^{pr2}$我不知道我是怎么来的。在
这是我的代码:
import pandas as pd
import matplotlib.pyplot as plt
import datetime as dt
from mpl_finance import candlestick_ohlc
import matplotlib.dates as dates
data_pd = pd.read_csv('EURUSD-2016-05.csv', names=['Symbol', 'Date_Time', 'Bid', 'Ask'])
data_pd.head()
format = '%Y%m%d %H:%M:%S'
data_pd['Date_Time'] = pd.to_datetime(data_pd['Date_Time'], format = format)
data_pd = data_pd.set_index(data_pd['Date_Time'])
data_pd = data_pd.drop(columns=['Symbol'])
data_ask = data_pd['Ask'].resample('10Min').ohlc()
data_ask = data_ask.reindex(columns= ['Date_Time', 'open', 'high', 'low', 'close'])
ohlc = data_ask[['Date_Time','open','high','low','close']]
f1, ax = plt.subplots(figsize = (10,5))
ax.xaxis.set_major_formatter(dates.DateFormatter('%Y-%m-%d %H:%M:%S'))
candlestick_ohlc(ax, ohlc.values, width=.6, colorup='green', colordown='red')
plt.show()
我的数据看起来像:
EUR/USD,20160502 00:00:00.033,1.14607,1.14613
EUR/USD,20160502 00:00:00.149,1.14607,1.14613
EUR/USD,20160502 00:00:00.237,1.14607,1.1461
EUR/USD,20160502 00:00:00.332,1.14605,1.1461
以下是您可以获取我的数据的链接:
https://pepperstone.com/uk/client-resources/historical-tick-data
我真的很感谢你的帮助。请友好点,因为我是Python新手。在
重新采样
data_pd['Ask']
时返回这些列:
['open', 'high', 'low', 'close']
,并且(重采样)时间成为索引。在当你重新建立索引时
^{pr2}$由于列
Date_Time
不存在,重新编制索引操作将返回缺少值的列。在可能有帮助的是:
如果您需要的话,这将把索引转换回列。在
编辑:根据上述说明,计算
ohlc
应该可以:相关问题 更多 >
编程相关推荐