MT5 Python模块按日期下载OHLC数据时时间对齐问题求助
MT5 Python模块按日期下载OHLC数据时区对齐问题
使用MT5 Python模块下载OHLC数据时,copy_rates_from_pos方法一切正常,但按日期范围下载时,获取到的数据时间与MT5图表上的时间无法对齐。
背景
经纪商时区为GMT+2/+3,夏令时切换规则与纽约一致,没有完全匹配的标准时区(例如雅典时区的夏令时切换日期不同)。
已尝试的三种方案
方案1:使用无时区信息的datetime对象设置日期范围
示例代码:now_date = datetime.now()结果:获取到的K线比图表最新K线早3小时,例如图表最新K线时间为8:03,数据框中最新K线为5:03,且OHLC值对应图表5:03的K线。
方案2:按照MT5官网建议切换为UTC时区
示例代码:now_date = datetime.now(pytz.timezone("Etc/UTC"))结果:获取到的时间比图表最新K线晚1小时,且OHLC数据与对应分钟的K线不匹配。
方案3:通过UTC和纽约时区转换适配经纪商GMT偏移
示例代码:nyc_timezone = pytz.timezone('America/New_York') utc_now = datetime.now(pytz.utc) nyc_time = utc_now.astimezone(nyc_timezone) if nyc_time.dst() != timedelta(0): broker_offset = 3 - (-4) # +3 GMT minus -4 GMT (NYC DST offset) else: broker_offset = 2 - (-5) # +2 GMT minus -5 GMT (NYC standard offset) broker_time = nyc_time + timedelta(hours=broker_offset) broker_time = broker_time.replace(second=0, microsecond=0)结果:获取到的时间比图表最新K线晚1小时,OHLC数据与对应分钟的K线也不匹配。
恳请指导如何通过MT5模块按日期正确下载数据,感谢帮助。
内容的提问来源于stack exchange,提问作者Jonathan Stearns
相关产品推荐
相关产品推荐

