下单
类型:TRADE · 权重:1 · 计入订单计数桶
状态:已实现。
POST /api/v3/order
下一笔 LIMIT(一直有效直到撤销)或 MARKET(立即成交否则撤销)现货订单。响应是受理确认,不是成交报告:即使订单立即成交,executedQty 也恒为 0。成交请从 myTrades 读取,最终状态请从 allOrders 读取。
请求 —— 所有参数放在 query string 中,signature 最后,请求体为空(见 请求规范)
POST /api/v3/order?symbol=CBTC-USDCB&side=BUY&type=LIMIT&quantity=0.001&price=50000×tamp=1756600000000&signature=...
参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
symbol | string | 是 | 如 CBTC-USDCB。 |
side | string | 是 | BUY 或 SELL。 |
type | string | 是 | LIMIT 或 MARKET。 |
quantity | string | 是 | 基础资产数量,正小数。下单时不校验 stepSize / minQty;请在客户端自行取整。 |
price | string | 仅 LIMIT | 限价,正小数(下单时不校验 tickSize)。MARKET 单必须不传(否则 -1100)。 |
newClientOrderId | string | 否 | 幂等 key;省略时自动生成随机 UUID。以 clientOrderId 回显。15 分钟内以相同值重复提交会返回原来的 orderId,不会再下一笔新单。 |
timestamp、recvWindow、signature | 见 鉴权。 |
timeInForce、quoteOrderQty、icebergQty、stopPrice、newOrderRespType、selfTradePreventionMode 会被忽略。
执行语义
LIMIT以 GTC 方式挂单。现货始终为 1 倍:BUY 在下单时锁定price × quantity的计价资产,SELL 锁定quantity的基础资产。MARKET为 IOC,带 5% 保护价带:BUY 最多吃到bestAsk × 1.05的卖单,SELL 最低打到bestBid × 0.95的买单;未成交的剩余部分被撤销。保护价带的价格同时也是 BUY 锁定的金额。对手方一侧为空时以-2010 Market order rejected: no counterparty liquidity.拒绝。- 自成交防护始终开启:撮合器会跳过你自己的挂单并继续匹配下一个对手方;你的挂单既不会成交也不会被撤销。
- 钱包出资账户(见 链上结算):
price × quantity(MARKET 单为保护价 × quantity)必须不低于该交易对的minNotional(-1013);账户必须已完成 MemberAuth(-2012)且未被冻结(-2010)。这些门槛在其他任何校验之前执行。
响应 — 200(值仅为示意)
{
"symbol": "CBTC-USDCB",
"orderId": "019910a4-9f21-7b34-8c56-1d2e3f4a5b6c",
"orderListId": -1,
"clientOrderId": "mm-quote-1756600000-17",
"transactTime": 1756600000123,
"price": "50000",
"origQty": "0.001",
"executedQty": "0.00000000",
"cummulativeQuoteQty": "0.00000000",
"status": "NEW",
"timeInForce": "GTC",
"type": "LIMIT",
"side": "BUY"
}
| 字段 | 说明 |
|---|---|
orderId | UUID 字符串。用于 GET / DELETE /api/v3/order。 |
orderListId | 恒为 -1(无 OCO)。 |
clientOrderId | 你传入的 newClientOrderId,或自动生成的 UUID。不会被存储供后续查询——见 查询订单。 |
price | LIMIT 单回显 price;MARKET 单在本受理确认中为 "0"(GET /api/v3/order 与 allOrders 会把保护价作为 price 返回)。 |
origQty | 回显 quantity,未做归一化。 |
executedQty、cummulativeQuoteQty | 在本受理确认中恒为 "0.00000000"。 |
status | 恒为 "NEW"。 |
timeInForce | LIMIT 为 "GTC",MARKET 为 "IOC"。 |
错误
| HTTP | code | msg / 原因 |
|---|---|---|
400 | -1100 | side 或 type 非法;MARKET 单带了 price;交易服务拒绝了某个参数(未知交易对、price / quantity 非数字或非正数)。 |
400 | -1102 | symbol、quantity 或(LIMIT)price 缺失或为空。 |
400 | -1013 | Filter failure: NOTIONAL —— 低于 minNotional(钱包出资账户)。 |
422 | -2010 | 余额不足以锁定(市场未激活或下单被风控闸门暂停时 msg 相同);或 MARKET 单无流动性;或账户被冻结。通过 msg 区分。 |
422 | -2012 | 需要完成钱包注册(MemberAuth)。 |
429 | -1003 | 权重桶或订单计数桶耗尽。 |
500 | -1000 | 交易服务不可用。 |
鉴权错误(-1021、-1022、-2014、-2015)见 错误码。
与 Binance 的差异
- 仅支持
LIMIT/GTC 与MARKET/IOC。没有LIMIT_MAKER、止损单、quoteOrderQty或newOrderRespType=FULL(响应永远不带fills)。 orderId为 UUID 字符串;clientOrderId不可用于查询。- 参数必须放在 query string 中。