当前位置:首页>行情>【量化小技巧】获取行情数据返回空字典?

【量化小技巧】获取行情数据返回空字典?

  • 2026-11-07 07:26:39
【量化小技巧】获取行情数据返回空字典?
郑重声明:本系列是个人操作日记,不构成投资建议!文中所有观点,仅代表个人立场以及个人操作,不具有任何指导作用!据此操作,风险自负!市场有风险,投资需谨慎。

做QMT量化的兄弟,想必都对 get_full_tick 这个函数又爱又恨。爱它,是因为它能拿到最全、最新的tick快照,策略的灵敏就靠它;恨它,是因为——它动不动就给你甩个空字典 {},一脸无辜。

很多新手第一反应:“行情源挂了吧?”结果折腾半天,发现行情源好好的,问题出在自己身上。

今天我们就来扒一扒,get_full_tick 返回空数据的 5大常见原因。尤其第一条,踩坑率高达80%,看完赶紧自查!

先搞懂:get_full_tick 到底取的是什么?

简单说,它是从QMT内存里读取最新的tick快照。也就是说,它不是去服务器实时拉,而是去 本地内存 里拿现成的。

那问题来了——如果内存里没东西,它当然给你空的。所以,下面这5个原因,本质上都指向同一个问题:数据根本没进内存。

01

没订阅!没订阅!没订阅!

SKQuant

这是最最最常见的坑,没有之一。

很多人直接在 handlebar 里写:

tick = get_full_tick(['000001.SZ'])

然后自信满满地运行,结果返回 {}。

兄弟,你都没告诉QMT你要这只票的数据,内存里怎么会有?

正确姿势:必须在 init 里先订阅。

def init():  subscribe_quote(['000001.SZ', '600000.SH'])

只有订阅了,行情数据才会源源不断往内存里推,get_full_tick 才能读到。先订阅,解决一大半问题!

02

代码格式不规范

SKQuant

QMT对代码格式要求极其严格,必须带市场后缀,而且必须大写。

❌ 错误写法:

  • '000001'(没后缀)

  • '000001.sz'(小写)

  • 'sz000001'(不是QMT标准)

✅ 正确写法:

  • '000001.SZ'

  • '600000.SH'

建议写个格式化函数,自动补后缀、转大写,避免手滑:

def format_code(code, market):  code = code.upper()  if not code.endswith('.SH') and not code.endswith('.SZ'):    code += '.SH' if market == '上海' else '.SZ'  return code

03

非交易时段调用

SKQuant

如果你在周末、节假日、或者早上8点就跑去调用 get_full_tick,那返回空是必然的——因为今天的数据还没开始推送,内存里还是空的。

QMT的tick数据是实时推送的,只有交易时段才有。如果你想在盘后测试,请改用 get_market_data_ex,那是历史数据接口,随时可查。

记住:

  • 盘中 → get_full_tick(实时快照)

  • 盘后/非交易时段 → get_market_data_ex(历史K线或tick)

04

客户端断连或未登录

SKQuant

QMT不管是哪种模式(mini QMT还是普通版),底层都靠客户端收数据。如果客户端没登录、或者行情连接断了,那数据推送就停了,内存自然空。

怎么检查?看QMT客户端右下角,有没有显示“已连接交易服务器”或“行情已连接”的图标。如果是红色或灰色,赶紧重新登录。

有时候网络波动也会闪断,重新连接一下就好了。

05

参数传了字符串而不是列表

SKQuant

这个坑新手容易忽略:get_full_tick 的 参数必须是一个列表,即使只查一只票。

❌ 错误:

tick = get_full_tick('000001.SZ')   # 传字符串

✅ 正确:

tick = get_full_tick(['000001.SZ'])  # 传列表

06

写在最后

SKQuant

当你再次遇到 get_full_tick 返回空字典时,按顺序查这5条:

  1. ✅ 在 init 里 subscribe_quote 了吗?

  2. ✅ 代码格式是否 大写 + .SH/.SZ?

  3. ✅ 当前是交易时段吗?非交易时段请用历史接口。

  4. ✅ 客户端右下角显示已连接吗?

  5. ✅ 参数传的是列表 [] 吗?

基本上,99%的空返回都逃不出这5条。如果你全查过了还是空,那……大概率是你记错股票代码了 😂

量化技巧系列

if you_are_coder:    join_us()elif you_are_trader:    join_us()

SKQuant

最新文章

随机文章