Python。为什么我拿不到烛台?

2024-04-25 13:59:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我在用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新手。在


Tags: to数据importdatadatetimedatetimeas
1条回答
网友
1楼 · 发布于 2024-04-25 13:59:21

重新采样data_pd['Ask']

data_ask = data_pd['Ask'].resample('10Min').ohlc()

返回这些列:['open', 'high', 'low', 'close'],并且(重采样)时间成为索引。在

当你重新建立索引时

^{pr2}$

由于列Date_Time不存在,重新编制索引操作将返回缺少值的列。在

可能有帮助的是:

data_ask.reset_index()

如果您需要的话,这将把索引转换回列。在


编辑:根据上述说明,计算ohlc应该可以:

data_ask = data_pd['Ask'].resample('10Min').ohlc()
ohlc = data_ask.reset_index()

相关问题 更多 >