问题描述
1、查持仓股实时最新价用 get_full_tick 即可吗?盘中(10:30、14:45)调用有限制吗?
2、查”今日开盘价”也用 get_full_tick 的 open 字段吗?
解决方案
针对您在 QMT (迅投) 量化平台中查询价格的疑问,解答如下:
1. 查持仓股实时最新价用 get_full_tick 即可吗?盘中调用有限制吗?
是的,完全可以。
在 QMT 中,获取股票的实时最新价最直接的方法就是使用 ContextInfo.get_full_tick(stock_code) 函数。该函数会返回指定股票的最新分笔(Tick)快照数据字典,其中的 lastPrice 字段即为实时最新价。
关于盘中调用限制:
盘中(如 10:30、14:45 等任意交易时段)调用没有任何时间限制。只要在连接正常且处于交易时段内,您随时可以在 handlebar 或定时器回调中调用该函数来获取最新的行情切片数据。
2. 查“今日开盘价”也用 get_full_tick 的 open 字段吗?
是的。
get_full_tick 返回的字典中包含了丰富的当日行情快照信息,其中 open 字段代表的就是该股票的今日开盘价。此外,您还可以通过该接口获取最高价(high)、最低价(low)、昨收价(lastClose)等。
💡 Python 代码示例
以下是一个在 handlebar 中调用 get_full_tick 获取最新价和开盘价的示例代码:
#coding:gbk
def init(ContextInfo):
# 设置股票池,例如平安银行和浦发银行
ContextInfo.set_universe(['000001.SZ', '600000.SH'])
def handlebar(ContextInfo):
# 确保在最新的一根K线上执行(实盘/模拟中)
if not ContextInfo.is_last_bar():
return
# 获取股票池中股票的最新Tick数据
stock_list = ContextInfo.get_universe()
tick_data = ContextInfo.get_full_tick(stock_list)
for stock in stock_list:
if stock in tick_data:
# 获取实时最新价
last_price = tick_data[stock]['lastPrice']
# 获取今日开盘价
open_price = tick_data[stock]['open']
print(f"代码: {stock} | 实时最新价: {last_price} | 今日开盘价: {open_price}")
补充说明
除了 get_full_tick,如果您需要获取历史的开盘价或更复杂的K线数据,也可以使用 ContextInfo.get_market_data_ex 接口,但对于实时快照和当日基础价格(最新、开、高、低),get_full_tick 是最高效且最常用的选择。