QMT passorder 返回了但没成交
passorder 调通了、日志里也有返回,账户却没仓、没成交——多半把「委托发出去了」当成「已经成交」。这是机制,不是偶发 bug。
不构成投资建议,不代操盘。
结论
- 返回值:表示下单请求被客户端接受(或给出错误码),不是成交确认。
- 成交:看
deal_callback/ 持仓变化,或主动查get_trade_detail_data的DEAL/ORDER。 - 废单、部成、拒单:走委托状态,不是「没返回」。
完整回调写法见 委托回调怎么写。
最小对账
python
#coding:gbk
def init(C):
C.set_account(account)
def order_callback(C, orderInfo):
print('order', getattr(orderInfo, 'm_strInstrumentID', ''),
getattr(orderInfo, 'm_nOrderStatus', ''),
getattr(orderInfo, 'm_nVolumeTraded', 0))
def deal_callback(C, dealInfo):
print('deal', getattr(dealInfo, 'm_strInstrumentID', ''),
getattr(dealInfo, 'm_nVolume', 0),
getattr(dealInfo, 'm_dPrice', 0))回测、研究模式常常没有真实主推。要在实盘运行里验;对账再用 get_trade_detail_data(account, 'stock', 'DEAL')。
还要排除的
| 检查 | 说明 |
|---|---|
| 后缀 | 上交所用 .SH,不是 .XSHG |
| 账号 | init 里 set_account;交易界面注入的 account |
| 枚举 | opType / prType 别凭记忆,见 passorder |
| 时段 | 集合竞价、涨跌停、停牌会废单或不成交 |
