3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 QMT 中,要在下单前获取股票的涨跌停价格,最直接的方法是使用 ContextInfo.get_instrumentdetail(stockcode) 接口。
该接口返回一个包含合约详细信息的字典,其中 UpStopPrice 字段代表涨停价,DownStopPrice 字段代表跌停价。
以下是一个完整的策略示例,展示如何在 handlebar 中获取指定股票的涨跌停价格:
# -*- coding: gbk -*-
def init(ContextInfo):
# 在初始化中设置股票池,这里以浦发银行为例
ContextInfo.set_universe(['600000.SH'])
def handlebar(ContextInfo):
# 获取当前主图的股票代码,也可以指定具体的代码字符串,如 '600000.SH'
stock_code = ContextInfo.stockcode
# 获取合约详细信息
detail = ContextInfo.get_instrumentdetail(stock_code)
# 判断是否成功获取到数据
if detail:
# 提取涨停价
up_limit = detail['UpStopPrice']
# 提取跌停价
down_limit = detail['DownStopPrice']
print(f"代码: {stock_code}")
print(f"涨停价: {up_limit}")
print(f"跌停价: {down_limit}")
# 示例:在下单逻辑中使用
# 如果当前价格低于涨停价,则执行买入逻辑(仅作演示)
# last_price = ContextInfo.get_market_data(['close'], stock_code=stock_code, count=1)
# if last_price < up_limit:
# passorder(...)
else:
print(f"未能获取到 {stock_code} 的合约信息")
ContextInfo.get_instrumentdetail(stockcode)stockcode 为股票代码,格式如 '600000.SH'。'UpStopPrice': 当日涨停价'DownStopPrice': 当日跌停价如果您正在处理高频 Tick 数据,也可以通过 ContextInfo.get_full_tick(stock_code) 获取最新的分笔数据,其返回的字典中同样包含 UpStopPrice 和 DownStopPrice 字段。但对于一般的下单前检查,get_instrumentdetail 更为常用和直接。
Q: get_instrumentdetail 获取的是实时涨跌停价格吗?
A: 是的,它获取的是该交易日交易所规定的涨跌停价格。对于创业板或科创板,该价格会根据前收盘价和涨跌幅限制(如20%)计算得出。
Q: 如果股票停牌了,还能获取到涨跌停价吗?
A: 通常可以获取到,因为涨跌停价是基于前一交易日收盘价计算的静态属性,与股票当前是否正在交易(IsTrading)无直接关系,但具体取决于交易所数据的推送情况。
Q: 这个接口支持期货吗?
A: 支持。对于期货合约,该接口同样返回涨跌停板价格。