下单
描述
该接口支持现货、杠杆及合约下单,并可以自定义包括价格、数量和订单类型等参数。
新功能预告 (当前暂不支持)
- 逐仓杠杆交易即将上线
- 跟单交易即将上线
合约交易
合约单向持仓下只减仓订单,如果已经存在减仓单并且减仓单数量已经等于仓位数量,或者你新下的减仓单大于仓位剩余数量,会自动把之前减仓单取消,重新下新的减仓单,此时返回的信息 orderId会为 null,建议一定要传cliendOid
- 杠杆交易
杠杆下单会自动借贷
订单检查
合约:
Price下单价格要满足价格乘数priceMultiplier的倍数,并且符合pricePrecision小数位。qty要满足大于minTradeUSDT并且满足sizeMultiplier的倍数现货:
price要满足小数位。qty下单数量必须要大于minTradeUSDT
开仓逻辑
双向持仓
开多:side=buy&posSide=long
开空:side=sell&posSide=short
平多:side=sell&posSide=long
平空:side=buy&posSide=short单向持仓
开多side:buy
开空side:sell
平多side:sellreduceOnly:yes
平空side:buyreduceOnly:yes
- 订单持有上限:
- 合约: USDT合约/币本位合约/USDC合约所有交易对加起来一共最多支持400个订单
- 现货: 现货/杠杆所有交易对最多支持400订单
- 请求监控:
将针对您的 API 请求进行统计监控,当单日 (UTC 0点 - UTC 24点) 单账号(母账号和子账号整体运算)订单总数超过一定上限,平台将保留提醒、警告,以及进行必要性限制的权利。 使用API的客户预设接收本条款并负有配合调整的义务。
- 下单出现错误
{ "code":"40762", "msg":"The order size is greater than the max open size", "requestTime":1627293504612 }
两种原因
- 账户余额不足
- 当前交易对当前杠杆仓位梯度已满,具体仓位梯度请参考 这里
- 账户余额不足
注意:操作订单时出现以下错误,请用clientOid查询订单详情,以确认操作的最终结果
{ "code": "40010", "msg": "Request timed out", "requestTime": 1666268894074, "data": null }
{ "code": "40725", "msg": "service return an error", "requestTime": 1666268894071, "data": null }
{ "code": "45001", "msg": "Unknown error", "requestTime": 1666268894071, "data": null }
HTTP请求
- POST /api/v3/trade/place-order
- 限频规则: 10次/秒/UID
- 需要统一账户交易读写权限
curl -X POST "https://api.bitget.com/api/v3/trade/place-order" \
-H "ACCESS-KEY:your apiKey" \
-H "ACCESS-SIGN:*" \
-H "ACCESS-PASSPHRASE:*" \
-H "ACCESS-TIMESTAMP:1659076670000" \
-H "locale:zh-CN" \
-H "Content-Type: application/json" \
-d '{"category":"SPOT","symbol":"BGBUSDT","orderType":"limit","qty":"123","price":"1.11","side":"buy","posSide":"long","timeInForce":"gtc","reduceOnly":"no"}'
请求参数
| 参数名 | 参数类型 | 是否必须 | 描述 |
|---|---|---|---|
| category | String | 是 | 产品类型SPOT 现货交易MARGIN 杠杆交易USDT-FUTURES USDT合约COIN-FUTURES 币本位合约USDC-FUTURES USDC合约 |
| symbol | String | 是 | 交易对名称 例如: BTCUSDT |
| qty | String | 是 | 下单数量 现货/杠杆: 市价买单,单位为quote coin 限价及市价卖单,单位为base coin 合约: 单位为base coin |
| price | String | 否 | 下单价格 订单类型为限价单 limit时,该字段必填订单类型为市价单 market时,该字段失效 |
| side | String | 是 | 下单方向buy: 买sell: 卖 |
| orderType | String | 是 | 订单类型limit: 限价单market: 市价单 |
| timeInForce | String | 否 | 订单执行策略ioc: 无法立即成交的部分就撤销fok: 无法全部立即成交就撤销gtc: 普通订单, 订单会一直有效,直到被成交或者取消post_only: 只做maker订单类型为限价单 limit时必填,若省略则默认为gtc |
| posSide | String | 否 | 仓位方向 双向持仓模式下必填,单向持仓时不要填,否则会报错 long: 多头short: 空头 只适用于合约交易 |
| clientOid | String | 否 | 自定义订单ID, 幂等有效期六小时 (不完全保证) ^[\.A-Z\:/a-z0-9_-]{1,32}$ |
| reduceOnly | String | 否 | 是否只减仓:yes,no,默认no;yes表示确保委托的执行只以平仓为目的,减少仓位仅适用于单向持仓模式下 |
| stpMode | String | 否 | STP模式(自成交预防)none:不设置STP(默认值)cancel_taker:取消taker单 cancel_maker:取消maker单 cancel_both:两者都取消 |
| tpTriggerBy | String | 否 | 预设止盈触发类型market:市场价格mark:标记价格如不填写,默认值为market市场价格 该字段仅针对合约业务线usdt-futures,coin-futures及usdc-futures生效 |
| slTriggerBy | String | 否 | 预设止损触发类型market市场价格mark标记价格如不填写,默认值为market市场价格 该字段仅针对合约业务线usdt-futures,coin-futures及usdc-futures生效 |
| takeProfit | String | 否 | 预设止盈触发价格 |
| stopLoss | String | 否 | 预设止损触发价格 |
| tpOrderType | String | 否 | 止盈触发的策略单类型limit 限价单market 市价单 |
| slOrderType | String | 否 | 止损触发的策略单类型limit 限价单market 市价单 |
| tpLimitPrice | String | 否 | 止盈策略单执行价格 仅限价单 tpOrderType=limit时有效,市价单忽略该参数 |
| slLimitPrice | String | 否 | 止损策略单执行价格 仅限价单 slOrderType=limit时有效,市价单忽略该参数 |
{
"code": "00000",
"msg": "success",
"requestTime": 1695806875837,
"data": {
"clientOid": "121211212122",
"orderId": "121211212122"
}
}
返回参数
| 返回字段 | 参数类型 | 字段说明 |
|---|---|---|
| orderId | String | 订单id |
| clientOid | String | 自定义订单id |