问题描述
请问这个接口的数据是当天开盘前更新吗?也就是能在盘前即能获取当日涨跌停价格?
解决方案
是的,可以在盘前获取到当日的涨跌停价格。
在 QMT 平台中,对应的接口为 ContextInfo.get_instrumentdetail(stockcode)。该接口用于获取合约的详细静态信息。
1. 更新时间机制
QMT 的基础合约信息(包括昨收价、当日涨停价、当日跌停价等)通常在券商服务器完成日初清算和系统初始化后就会更新。这个时间点一般在交易日的早上 8:30 到 9:00 之间。
因此,在 9:15 集合竞价开始之前,您完全可以通过该接口获取到当日准确的涨跌停价格,用于盘前的策略初始化或挂单逻辑。
2. 获取涨跌停价的字段
调用 ContextInfo.get_instrumentdetail(stockcode) 后,会返回一个字典,其中包含以下关键字段:
UpStopPrice:当日涨停价DownStopPrice:当日跌停价PreClose:前收盘价格(昨收)
3. 代码示例
您可以在策略中这样获取并使用盘前的涨跌停数据:
#coding:gbk
def init(ContextInfo):
# 假设我们在盘前运行策略,获取平安银行的涨跌停价
stock_code = '000001.SZ'
# 获取合约详细信息
detail_info = ContextInfo.get_instrumentdetail(stock_code)
if detail_info:
up_stop_price = detail_info.get('UpStopPrice', 0)
down_stop_price = detail_info.get('DownStopPrice', 0)
pre_close = detail_info.get('PreClose', 0)
print(f"合约: {stock_code}")
print(f"昨收价: {pre_close}")
print(f"当日涨停价: {up_stop_price}")
print(f"当日跌停价: {down_stop_price}")
else:
print(f"未能获取到 {stock_code} 的合约信息")
def handlebar(ContextInfo):
pass
注意事项:
- 确保您的 QMT 客户端在盘前已经正常登录并连接到行情服务器,以便同步最新的基础数据。
- 如果是新上市的股票或恢复交易的股票,其涨跌停限制可能与普通股票不同,该接口返回的数据会由交易所规则和券商柜台数据同步决定。