3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 ptrade 量化交易平台中,使用 order_target(指定目标数量买卖)函数进行委托下单时,如果创建订单失败,函数会返回 None。导致下单失败返回 None 的常见原因主要包括以下几个方面:
在交易场景中,如果您调用 order_target 时没有传入 limit_price(限价)参数,系统会默认使用行情快照数据中的最新价进行报单。如果此时行情快照获取失败(例如网络延迟、未开通对应行情权限或盘前无数据),就会导致委托失败并返回 None。系统通常会在日志中增加相关提醒。
order_target 是调整到目标数量,但如果计算出需要卖出的数量大于当前可用持仓数量,也会导致委托失败。如果委托的标的(如股票)处于以下状态,柜台将拒绝报单:
.SS 或 .SZ)。如果您传入了 limit_price,需要注意不同品种的价格精度要求。如果小数位数处理不当,会导致委托失败:
order_target 在委托股票时会自动取整为 100股 的整数倍,委托可转债时取整为 10张。如果目标数量设置不合理,可能会导致计算出的实际委托数量为 0 或不符合交易所规则。order_target(security, 0))时不受 100 股整数倍的限制。order_target 函数不支持国债逆回购交易。如果尝试对逆回购代码使用该函数,将直接返回 None。
limit_price 的精度是否符合品种要求。None,可以通过 log.error 打印当前资金、持仓和最新价,以便定位问题。order_id = order_target('600570.SS', 1000, limit_price=45.00)
if order_id is None:
log.error('下单失败,请检查资金、持仓或标的状态!')