问题描述
我使用 MetaTrader 和 Pandas 库来获取外汇价格并存储到 csv 文件。 当我将年份设置为 2019 年和之后 (2020,2021) 时,一切都很好。但是当我设置为 2018 年或更早的年份时,我会收到 Panda 的错误消息。似乎当数据变得巨大时,这种情况正在发生。 我的代码是:
def Get_Date_from_to(PAIR,TF,Location):
timezone = pytz.timezone("Etc/UTC")
year = datetime.Now().year
month = datetime.Now().month
day = datetime.Now().day
hour = datetime.Now().hour
minute = datetime.Now().minute
second = datetime.Now().second
if not mt5.initialize():
print("initialize() Failed,error code =",mt5.last_error())
quit()
date_from = datetime(2018,1,tzinfo=timezone)
date_to = datetime(year,month,day,hour,minute,second,tzinfo=timezone)
rates = mt5.copy_rates_range(PAIR,date_from,date_to)
# create DataFrame out of the obtained data
rates_frame = pd.DataFrame(rates)
# convert time in seconds into the 'datetime' format
rates_frame['time']=pd.to_datetime(rates_frame['time'],unit='s')
rates_frame.to_csv(Location)
我收到此错误:
rates_frame['time']=pd.to_datetime(rates_frame['time'],unit='s')
File "C:\Users\Administrator\AppData\Local\Programs\Python\python38\lib\site-packages\pandas\core\frame.py",line 3024,in __getitem__
indexer = self.columns.get_loc(key)
File "C:\Users\Administrator\AppData\Local\Programs\Python\python38\lib\site-packages\pandas\core\indexes\base.py",line 3082,in get_loc
raise KeyError(key) from err
KeyError: 'time'
解决方法
我在 Meta Trader 中将图表中的最大柱形增加到 100000,现在一切正常。
MetaTrader > 选项 > 图表 > 图表中的最大柱