You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 12:02:36