3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
您遇到的“涨停买入自动撤单”并不是系统的 bug,而是交易所的交易规则导致的。
您在下单时使用了 MARKET_PEER_PRICE_FIRST(对手方最优价格委托)。在正常的交易状态下,买入时的“对手方最优价格”即为卖一价。但是,当股票涨停时,卖盘(卖一至卖五)通常是空的(没有人愿意以低于或等于涨停价的价格卖出,或者卖单瞬间被吃光)。
此时,交易所接收到您的“对手方最优价格”市价单,发现盘口没有对手方报价可以撮合,根据交易所规则,该笔市价委托会被直接作废(自动撤单)。
要解决涨停板无法买入(或跌停板无法卖出)的问题,您需要将订单的报价类型(price_type)修改为限价委托(指定价)或最新价,并将价格明确指定为涨停价。
将 price_type 修改为 xtconstant.FIX_PRICE(指定价)或 xtconstant.LATEST_PRICE(最新价)。
# 修改后的代码示例:使用指定价(限价单)下单
order_id = self.xt_trader.order_stock(
self.account,
stock_code=xq_stock_code,
order_type=xtconstant.STOCK_BUY,
order_volume=buy_vol,
price=price, # 这里的 price 传入涨停价
price_type=xtconstant.FIX_PRICE, # 修改为指定价
strategy_name=remark,
order_remark=''
)
如果您在 QMT 策略编辑器中使用 passorder,请将 prType 参数设置为 11(指定价)或 5(最新价)。
# QMT passorder 示例:prType=11 为指定价
passorder(23, 1101, ContextInfo.accid, xq_stock_code, 11, price, buy_vol, remark, 2, '', ContextInfo)