3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 QMT (XtQuant) 中进行国债逆回购下单时遇到 100009 错误,通常是由于柜台拒绝委托引起的。结合您在“模拟交易”环境下的情况,主要有以下几个常见原因及排查方向:
绝大多数券商提供的模拟交易环境(模拟柜台)是不支持国债逆回购(如 204001.SH、131810.SZ)等业务的。模拟柜台通常只支持普通的 A 股买卖。当您向模拟柜台发送逆回购的委托指令时,柜台无法识别或不支持该业务,就会直接拒绝并返回 100009(委托失败/废单)错误。
解决方法:建议在实盘环境中用小资金(如 1000 元)进行测试,实盘柜台通常都能正常处理逆回购指令。
沪市国债逆回购(204001.SH)的交易规则在近年来有过调整,目前门槛为 1000 元(即 10 张,1张=100元)。
您的代码中 trade_vol = 10 在新规下是合法的(代表 10 张,即 1000 元)。但是,部分老旧的模拟柜台系统可能还停留在旧规则(沪市逆回购门槛 10 万起,即 1000 张),或者某些柜台接口要求的 trade_vol 单位是“金额”而非“张数”。
排查建议:如果在实盘中依然报错,请尝试将 trade_vol 调整为 1000(代表 10 万)或咨询对应券商接口对逆回购数量单位的具体要求。
您的代码中使用了 xtconstant.STOCK_SELL(卖出),这是完全正确的。国债逆回购的本质是“借出资金”,在交易系统中对应的操作就是“卖出”(融券卖出/卖出开仓)。
逆回购的报价是“年化收益率”。您的报价 1.52 是合理的。但请注意,逆回购的价格变动单位通常是 0.005。确保传入的价格符合该品种的最小变动单位(PriceTick),否则也可能被柜台拒单。
on_order_error 或 on_order_stock_async 的回调),打印出具体的 error_msg,柜台通常会返回类似“该市场/品种不支持”或“资金不足”的详细中文提示。