3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
根据您提供的代码,导致 MiniQmt 获取历史数据为空的最主要原因在于时间参数设置错误。
在您的代码中,start_time='20251011' 和 end_time='20251115' 设置的是 2025年10月到11月 的时间段。由于这个时间在未来,交易所尚未产生这些日期的行情数据,因此无论您怎么切换行情源,下载和获取的数据必然为空。
解决方法:将 start_time 和 end_time 修改为过去的有效交易日期。
get_market_data 缺少字段参数在使用 xtdata.get_market_data 时,建议显式指定需要获取的字段列表(field_list),例如开盘价、收盘价等,否则可能会因为参数传递顺序问题导致获取失败。
请参考以下修改后的代码(将时间修改为 2023 年的有效日期,并补充了 field_list):
from xtquant import xtdata
# 1. 定义参数
stock_list = ['600309.SH', '600989.SH', '002714.SZ']
period = '1d'
# 修改为过去的有效时间
start_time = '20231011'
end_time = '20231115'
# 2. 下载历史数据到本地
print("开始下载历史数据...")
xtdata.download_history_data2(
stock_list=stock_list,
period=period,
start_time=start_time,
end_time=end_time
)
print("下载完成!")
# 3. 从本地读取数据
# 建议显式指定 field_list,例如获取开高低收和成交量
field_list = ['open', 'high', 'low', 'close', 'volume']
res = xtdata.get_market_data(
field_list=field_list,
stock_list=stock_list,
period=period,
start_time=start_time,
end_time=end_time
)
# 4. 打印结果
print(res)
如果修改时间后仍然获取为空,请按以下步骤排查:
download_history_data2 是异步或阻塞下载,确保下载完成后再调用 get_market_data。如果网络较慢,可以尝试先在 QMT 客户端的“数据管理”中手动补充对应股票的日线数据,然后再用代码读取。.SH,深交所为 .SZ),您的代码中格式是正确的。