当我将时间从 2019 年更改为 2018 年以从 Metatrader 获取数据时出现错误

问题描述

我使用 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 > 选项 > 图表 > 图表中的最大柱