如何将datetime.date.today()转为YYYY,MM,DD适配MT5 copy_rates_from函数
解决MT5日期参数自动填充问题
直接用datetime.date.today()返回对象的内置属性就行,不用折腾字符串格式转换——因为mt5.copy_rates_from的第3到第5个参数要的是整数类型的年、月、日,不是拼接好的字符串,这就是你之前代码跑不通的原因。
直接可用的代码示例
import datetime import mt5 # 先初始化MT5连接,这步不能少 if not mt5.initialize(): print("MT5初始化失败") mt5.shutdown() exit() # 获取今日日期的对象 today = datetime.date.today() # 直接提取年、月、日的整数值 year = today.year month = today.month day = today.day # 调用MT5函数,传入拆分后的日期参数 rates = mt5.copy_rates_from("EURUSD", mt5.TIMEFRAME_H4, year, month, day, 200) # 检查数据是否获取成功 if rates is None: print(f"拿数据失败,错误码:{mt5.last_error()}") else: print(f"成功拿到{len(rates)}条H4周期数据") # 用完记得关闭MT5连接 mt5.shutdown()
额外场景:从字符串日期转参数
如果你的日期是"YYYY-MM-DD"格式的字符串,也可以先解析成日期对象再提取参数:
date_str = "2024-05-20" date_obj = datetime.datetime.strptime(date_str, "%Y-%m-%d") year = date_obj.year month = date_obj.month day = date_obj.day
内容的提问来源于stack exchange,提问作者Grantmcscott
相关产品推荐
相关产品推荐

