Bybit API报错CannotAffordOrderCost(错误码130021)求助
排查Bybit API开OPUSDT多单时的「CannotAffordOrderCost」(错误码130021)问题
问题详情
通过Bybit API开立OPUSDT多单时,反复收到错误码130021(提示「CannotAffordOrderCost」)。相关参数如下:
- OPUSDT标记价格:1.708美元
- USDT钱包余额:108.96975186美元
- 杠杆倍数:10x
- 计划开仓实际资金:87美元
- 计算得出的带杠杆仓位规模(USDT):871.8美元
- 对应OP持仓数量:510.4
确认钱包余额充足,但API仍返回该错误,需排查原因。调用代码如下:
const order: APIResponseWithTime<LinearOrder | null> = await client.placeActiveOrder({ symbol: `${position.symbol}`, reduce_only: false, close_on_trigger: false, order_type: "Market", qty: positionAmount, side: "Buy", time_in_force: "GoodTillCancel", });
排查方向
- 手续费未纳入计算:市价单会预先扣除预估手续费,Bybit USDT永续合约手续费率通常在0.075%左右,实际所需资金=基础保证金+预估手续费,若仅按87美元计算,加上手续费后可能超出可用余额。
positionAmount参数值错误:检查该变量实际取值是否为预期的510.4 OP。如果误将871.8(USDT金额)赋值给它,API会将其当作OP数量处理,所需资金会远超账户余额。- 可用余额与钱包余额不一致:钱包余额不等于可用保证金,若有未成交订单占用保证金、或已有持仓消耗了部分保证金,实际可用金额会低于显示的钱包余额。可调用
getWalletBalance接口查询available_balance字段确认。 - 杠杆/保证金模式异常:确认合约的保证金模式(逐仓/全仓),逐仓模式下需对应合约的逐仓可用保证金足够;同时检查杠杆是否成功设置为10x,若实际杠杆低于预期,所需保证金会增加。
- 市价滑点影响:市价单以市场最优价成交,若实际成交价格高于标记价1.708美元,实际所需保证金会高于计算值,可能触发资金不足错误。
内容的提问来源于stack exchange,提问作者Murat Karagozgil
相关产品推荐
相关产品推荐

