3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
遇到 QMT 平台数据日期不更新(如停留在 2021 年),且 get_market_data_ex 无法获取最新数据的问题,通常是由行情服务器连接、本地数据未正确补充、或代码参数设置不当引起的。即使重装软件,如果核心配置或数据源未对齐,问题依然会存在。
以下是详细的排查和解决步骤:
QMT 必须连接到券商的行情服务器才能获取最新数据。
虽然您提到已经重新下载了数据,但请确认下载的范围和品种是否正确。
get_market_data_ex 的参数设置get_market_data_ex 是 QMT 推荐的获取行情数据的接口,其参数设置直接影响数据的获取。
subscribe 参数:subscribe=True,表示会订阅最新数据。如果被错误地设置为 False,系统将只读取本地已有数据(即您本地停留在 2021 年的数据)。start_time 和 end_time:end_time 写死为 2021 年的某个日期。如果留空 '',则默认获取到最新数据。正确调用示例:
def handlebar(ContextInfo):
if not ContextInfo.is_last_bar():
return
# 获取沪深300最新日线数据,确保 subscribe=True
data = ContextInfo.get_market_data_ex(
fields=['open', 'high', 'low', 'close'],
stock_code=['000300.SH'],
period='1d',
start_time='',
end_time='',
count=-1,
dividend_type='follow',
fill_data=True,
subscribe=True # 关键:开启数据订阅
)
print(data)
如果您是在回测模式下运行策略,获取的数据范围受限于回测参数的设置。
init 函数是否写死了 ContextInfo.end:def init(ContextInfo):
# 确保这里的结束时间不是 2021 年
# ContextInfo.end = '2021-06-11 15:00:00'
如果重装和清空数据无效,最可能的原因是行情服务器未连接,或者补充数据时的时间区间未包含最新日期。请优先检查右下角的网络连接状态,并在代码中确保 subscribe=True。