我正在尝试使用该addValuesFromCSV
方法将自定义 csv 数据添加到 PyAlgoTrade 中,但出现此错误:
2021-10-14 17:50:00 {'Open': 4886.0, 'High': 4888.0, 'Low': 4879.0, 'Close': 4883.0}
2021-10-14 17:55:00 {'Open': 4883.0, 'High': 4887.0, 'Low': 4874.0, 'Close': 4877.0}
2021-10-15 10:30:00 {'Open': 4910.0, 'High': 4922.0, 'Low': 4901.0, 'Close': 4907.0}
---------------------------------------------------------------------------
Exception Traceback (most recent call last)
/var/folders/60/1yz0pnwd2jv15p28bffgz8p40000gn/T/ipykernel_9157/639233146.py in <module>
5 feed = csvfeed.Feed("Date", "%Y-%m-%d %H:%M:%S")
6 feed.addValuesFromCSV("data/5min/fcpo_dec_jan_contract.csv")
----> 7 for dateTime, value in feed:
8 print(dateTime, value)
~/opt/anaconda3/envs/ml/lib/python3.9/site-packages/pyalgotrade/feed/__init__.py in feed_iterator(feed)
29 try:
30 while not feed.eof():
---> 31 yield feed.getNextValuesAndUpdateDS()
32 finally:
33 feed.stop()
~/opt/anaconda3/envs/ml/lib/python3.9/site-packages/pyalgotrade/feed/__init__.py in getNextValuesAndUpdateDS(self)
88 ds = self.createDataSeries(key, self.__maxLen)
89 self.__ds[key] = ds
---> 90 ds.appendWithDateTime(dateTime, value)
91 return (dateTime, values)
92
~/opt/anaconda3/envs/ml/lib/python3.9/site-packages/pyalgotrade/dataseries/__init__.py in appendWithDateTime(self, dateTime, value)
136
137 if dateTime is not None and len(self.__dateTimes) != 0 and self.__dateTimes[-1] >= dateTime:
--> 138 raise Exception("Invalid datetime. It must be bigger than that last one")
139
140 assert(len(self.__values) == len(self.__dateTimes))
Exception: Invalid datetime. It must be bigger than that last one
这是我在 2021-10-15 10:30:00 之后的数据
日期 | 打开 | 高的 | 低的 | 关 |
---|---|---|---|---|
2021-10-15 10:30:00 | 4910 | 4922 | 4901 | 4907 |
2021-10-15 10:35:00 | 4907 | 4907 | 4891 | 4896 |
2021-10-15 10:40:00 | 4896 | 4902 | 4886 | 4893 |
2021-10-15 10:45:00 | 4893 | 4901 | 4887 | 4897 |
2021-10-15 10:50:00 | 4897 | 4897 | 4879 | 4882 |
..................... | …… | …… | …… | …… |
2021-11-15 17:35:00 | 4987 | 4989 | 4984 | 4985 |
2021-11-15 17:40:00 | 4985 | 4987 | 4975 | 4978 |
2021-11-15 17:45:00 | 4978 | 4990 | 4978 | 4987 |
2021-11-15 17:50:00 | 4986 | 4988 | 4970 | 4972 |
2021-11-15 17:55:00 | 4973 | 4975 | 4963 | 4965 |
以下是我的摄取代码:
from __future__ import print_function
from pyalgotrade.feed import csvfeed
feed = csvfeed.Feed("Date", "%Y-%m-%d %H:%M:%S")
feed.addValuesFromCSV("data/5min/fcpo_dec_jan_contract.csv")
for dateTime, value in feed:
print(dateTime, value)
我不明白为什么说最后一个日期比上一个日期小。帮助将不胜感激
谢谢