You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用CCXT库在MEXC创建市价买单报错:InsufficientFunds(30004)

排查MEXC机器人下单InsufficientFunds错误的解决方案

核心问题分析

错误ccxt.base.errors.InsufficientFunds: mexc {"msg":"Insufficient position","code":30004}本质是账户可用资金不足,或资金未在正确账户分区,以下是具体排查和解决步骤:

1. 确认账户可用资金

先通过代码查询USDT实际可用余额,确保≥10美元:

balance = exchange.fetch_balance()
# 打印USDT的可用余额
print("USDT可用余额:", balance['USDT']['free'])

如果余额不足,需先充值USDT到现货账户。

2. 检查资金所在账户分区

MEXC分为现货、合约、理财等账户分区,你的代码是下单现货交易,必须确保资金在现货账户中。如果资金在其他账户,需手动在MEXC后台划转,或通过API调用transfer方法划转。

3. 修正下单金额计算逻辑

直接用amount_in_usd / current_price计算购买量未考虑交易手续费,实际下单时会因手续费扣除导致所需USDT超预算,可调整计算方式:

  • 方式一:用卖一价(ask)计算,避免价格波动导致金额超支:
# 用卖一价计算更准确的购买量
ask_price = ticker['ask']
amount_in_btc = amount_in_usd / ask_price
# 预留手续费空间,比如乘以0.995
amount_in_btc *= 0.995
  • 方式二:使用CCXT内置计算方法:
amount_in_btc = exchange.calculate_amount(symbol, amount_in_usd)

4. 验证API权限和交易对

  • 登录MEXC后台,检查API密钥是否开启现货交易权限(默认可能仅开启查询权限)。
  • 确认LBTCUSDT是现货市场有效交易对,避免选错合约交易对(合约交易对通常带后缀如LBTCUSDT_PERP)。

5. 测试最小下单量

部分交易所有最小下单量限制,可先尝试下极小订单(如购买0.0001 LBTC),确认是否能成功下单,排除金额计算以外的问题。

内容的提问来源于stack exchange,提问作者can yildiz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 15:27:38