当我将时间从 2019 更改为 2018 以从 Metatrader 获取数据时出现错误
Get Error when I change the time from 2019 to 2018 to get data from 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 , 1 , tzinfo=timezone)
date_to = datetime(year,month,day,hour, minute, second , tzinfo=timezone)
rates = mt5.copy_rates_range(PAIR, TF, 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 > 选项 > 图表 > 图表中的最大柱数
我使用 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 , 1 , tzinfo=timezone)
date_to = datetime(year,month,day,hour, minute, second , tzinfo=timezone)
rates = mt5.copy_rates_range(PAIR, TF, 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 > 选项 > 图表 > 图表中的最大柱数