账户和交易接口
查询子账户
GET /api/v1/subAccount/list
权重:5
参数
| 名称 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| userId | LONG | NO | 子用户userId |
| String | NO | 子用户邮箱 | |
| timestamp | LONG | YES | 时间戳 |
| recvWindow | LONG | NO | recv窗口 |
响应:
[
{
"userId": "879141111", // 子用户userId
"email": "aaa@rpbsho.com", // 子用户邮箱
"remark": "", // 子用户备注
"accountList": [ // 所有账户
{
"accountId": "1795119090857208832", // 账户id
"userId": "879145609", // userId
"accountType": "MAIN" // 账户类型
},
{
"accountId": "1795119090857208834",
"userId": "879145609",
"accountType": "FUTURES"
}
]
},
{
"userId": "935651111",
"email": "qwdqwd123_na5626@08rrkf.com",
"remark": "",
"accountList": [
{
"accountId": "1974746191561298944",
"userId": "935650120",
"accountType": "MAIN"
},
{
"accountId": "1974746191561298945",
"userId": "935650120",
"accountType": "FUTURES"
}
]
}
]accountType说明:
MAIN: 现货FUTURES: U本位合约COPY_TRADING: 带单账户
母子账户万能划转
POST /api/v1/subAccount/transfer
支持的划转操作:
- 母账户操作 母账户
现货账户划转到任意子账户现货账户、U本位合约账户 - 母账户操作 母账户
现货账户、U本位合约账户之间的划转 - 母账户操作 任意子账户
现货账户、U本位合约账户划转到母账户现货账户 - 母账户操作 某一个子账户的
现货账户、U本位合约账户之间的划转 - 子用户操作 当前子账户
现货账户到母用户现货账户、U本位合约账户的划转 - 子用户操作 当前子用户
现货账户、U本位合约账户之间的划转
权重:1
响应:
{
"code": 200, // 成功
"msg": "success" // 响应消息
}参数
| 名称 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| fromUid | LONG | YES | 源账户id |
| toUid | LONG | YES | 目标账户id |
| fromAccountType | String | YES | 源账户类型 |
| toAccountType | String | YES | 目标账户类型 |
| asset | String | YES | 币种 |
| quantity | DECIMAL | YES | 转账数量 |
| timestamp | LONG | YES | 时间戳 |
| recvWindow | LONG | NO | recv窗口 |
accountType:
MAIN: 现货FUTURES: U本位合约COPY_TRADING: 带单账户
获取划转历史
GET /api/v1/account/balanceFlow
获取现货账户与合约账户之间的资金划转历史记录
权重:5
响应:
[
{
"id": "539870570957903104",
"accountId": "122216245228131",
"coin": "BTC",
"coinId": "BTC",
"coinName": "BTC",
"flowTypeValue": 51, // 流水类型
"flowType": "USER_ACCOUNT_TRANSFER", // 流水类型名称
"flowName": "Transfer", // 流水类型说明
"change": "-12.5", // 变动值
"total": "379.624059937852365", // 变动后当前tokenId总资产
"created": "1579093587214"
},
{
"id": "536072393645448960",
"accountId": "122216245228131",
"coin": "USDT",
"coinId": "USDT",
"coinName": "USDT",
"flowTypeValue": 7,
"flowType": "AIRDROP",
"flowName": "Airdrop",
"change": "-2000",
"total": "918662.0917630848",
"created": "1578640809195"
}
]参数
| 名称 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| accountType | INT | NO | 账户对应的account_type, 1: 币币账户, 3: 合约账户 |
| coin | STRING | NO | tokenID |
| flowType | INT | NO | 划转:51 |
| fromId | LONG | NO | 顺向查询数据 |
| endId | LONG | NO | 反向查询数据 |
| startTime | LONG | NO | 开始时间 |
| endTime | LONG | NO | 结束时间 |
| limit | INT | NO | 返回条数 默认20 最小1 最大1000 |
| timestamp | LONG | YES | 时间戳 |
| recvWindow | LONG | NO | recv窗口 |
变换逐全仓模式 (TRADE)
POST /api/v1/futures/marginType
变换用户在指定symbol合约上的保证金模式:逐仓或全仓。
权重:1
响应:
{
"code":200, //响应码 200 = 成功
"symbolId":"BTC-SWAP-USDT", //交易对
"marginType":"CROSS" //开仓类型 CROSS:全仓 ISOLATED:逐仓
}参数
| 名称 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| symbol | STRING | YES | 交易对 |
| marginType | ENUM | YES | CROSS:全仓 ISOLATED:逐仓 |
| timestamp | LONG | YES | 时间戳 |
| recvWindow | LONG | NO | recv窗口 |
调整开仓杠杆 (TRADE)
POST /api/v1/futures/leverage
调整用户在指定symbol合约的开仓杠杆。
权重:1
响应:
{
"code": 200, //响应码 200 = 成功
"symbolId":"BTC-SWAP-USDT", //交易对
"leverage":"20" //杠杠倍数
}参数
| 名称 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| symbol | STRING | YES | 交易对 |
| leverage | INT | YES | 杠杠倍数 |
| timestamp | LONG | YES | 时间戳 |
| recvWindow | LONG | NO | recv窗口 |
查询杠杆倍数和仓位模式(USER_DATA)
GET /api/v1/futures/accountLeverage
获取用户所有合约交易对的杠杆倍数和仓位类型。这个API需要你的请求签名。
权重:5
响应:
[
{
"symbolId":"BTC-SWAP-USDT", //交易对
"leverage":"20", //杠杆倍数
"marginType":"CROSS" //开仓类型 CROSS:全仓 ISOLATED:逐仓
}
]参数
| 名称 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| symbol | STRING | YES | 交易对 |
| timestamp | LONG | YES | 时间戳 |
| recvWindow | LONG | NO | recv窗口 |
下单 (TRADE)
POST /api/v1/futures/order
权重:1
响应:
{
"time": "1668418485058", // 订单生成时的时间戳
"updateTime": "1668418485058", // 订单上次更新的时间戳
"orderId": "1289182123551455488", //订单ID
"clientOrderId": "test1115", //用户定义的订单ID
"symbol": "BTC-SWAP-USDT", //交易对
"price": "19000", //订单价格
"leverage": "2", //订单杠杆
"origQty": "10", //订单数量
"executedQty": "0", //订单已执行数量
"avgPrice": "0", //平均交易价格
"marginLocked": "9.5", //该订单锁定的保证金。这包括实际需要的保证金外加开仓和平仓所需的费用。
"type": "LIMIT", // 订单类型(LIMIT和STOP)
"side": "BUY_OPEN", // 订单方向(BUY_OPEN、SELL_OPEN、BUY_CLOSE、SELL_CLOSE)
"timeInForce": "GTC", // 时效单(Time in Force)类型(GTC、FOK、IOC)
"status": "NEW", //订单状态(NEW、PARTIALLY_FILLED、FILLED、CANCELED、REJECTED)
"priceType": "INPUT", //价格类型(INPUT、MARKET)
"contractMultiplier": "0.001" //合约乘数
}参数
| 名称 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| symbol | STRING | YES | 交易对 |
| side | ENUM | YES | 下单方向,方向类型为BUY_OPEN、SELL_OPEN、BUY_CLOSE、SELL_CLOSE |
| type | ENUM | YES | 订单类型,支持订单类型为LIMIT和STOP |
| quantity | LONG | YES | 订单的合约数量(张) |
| valueQuantity | LONG | NO | 订单的价值数量(USDT)例如购买2个BTC,价格=1000, 订单价值=2*1000=2000 。valueQuantity和quantity同时存在优先使用quantity |
| price | DECIMAL | NO | 订单价格 (LIMIT&INPUT)订单 强制需要 . |
| priceType | ENUM | NO | 价格类型,支持的价格类型为INPUT、MARKET |
| stopPrice | DECIMAL | NO | 计划委托的触发价格。type = STOP订单 强制需要 |
| timeInForce | ENUM | NO | LIMIT订单的时间指令(Time in Force),目前支持的类型为GTC、FOK、IOC |
| newClientOrderId | STRING | YES | 订单的ID,用户自己定义,不可以重复出现在挂单中 |
| takeProfit | STRING | NO | 止盈价格 |
| tpTriggerBy | ENUM | NO | 止盈条件单参数. 触发类型:MARK_PRICE(标记价格), CONTRACT_PRICE(合约最新价). 默认 CONTRACT_PRICE |
| tpLimitPrice | STRING | NO | 触发止盈后转换为限价单的价格, tpOrderType=LIMIT时有效 |
| tpOrderType | ENUM | NO | 止盈触发后的订单类型.MARKET(默认), LIMIT. |
| stopLoss | STRING | NO | 止损价格 |
| slTriggerBy | ENUM | NO | 止损条件单参数. 触发类型:MARK_PRICE(标记价格), CONTRACT_PRICE(合约最新价). 默认 CONTRACT_PRICE |
| slLimitPrice | STRING | NO | 触发止损后转换为限价单的价格,slOrderType=LIMIT时有效 |
| slOrderType | ENUM | NO | 止损触发后的订单类型.MARKET(默认), LIMIT. |
| category | ENUM | NO | USDC合约=USDC, 默认=USDT合约. |
| timestamp | LONG | YES | 时间戳 |
| recvWindow | LONG | NO | recv窗口 |
订单方向 (side):
- BUY_OPEN 开多买单开仓买入
- BUY_CLOSE 平空买单平仓买入
- SELL_OPEN 开空卖单开仓卖出
- SELL_CLOSE 平多卖单平仓卖出
价格类型 (priceType):
- INPUT 系统将会用你输入的价格来撮合订单。
- MARKET 订单会以 最新成交价 * (1 ± 5%) 撮合。
批量下单 (TRADE)
POST /api/v1/futures/batchOrders
单次最多10条订单,必须为同一symbol。
权重: 2
USDT合约例子:
curl -H "Content-Type:application/json"
-H "X-BB-APIKEY: 3jIF0QWOFAA64MnaFJz1pMvVFNaLyMThHUvhii1eyYBw4saPs9ocLasp45pqeGRs"
-X POST -d '[
{
"newClientOrderId": "pl2023010712345678900",
"symbol": "BTC-SWAP-USDT",
"side": "BUY_OPEN",
"type": "LIMIT",
"price": 16500,
"quantity": 10,
"priceType": "INPUT"
},
{
"newClientOrderId": "pl2023010712345678901",
"symbol": "BTC-SWAP-USDT",
"side": "BUY_OPEN",
"type": "LIMIT",
"price": 16000,
"quantity": 10,
"priceType": "INPUT"
} ]' '#HOST/api/v1/futures/batchOrders?timestamp=1673062952473&signature=f746cebecf9cf53601d2ab69b2f88f426a1c93a5f7bcc8bbdc5a2ce95c3fa976'USDC合约例子:
curl -H "Content-Type:application/json"
-H "X-BB-APIKEY: 3jIF0QWOFAA64MnaFJz1pMvVFNaLyMThHUvhii1eyYBw4saPs9ocLasp45pqeGRs"
-X POST -d '[
{
"newClientOrderId": "pl2023010712345678900",
"symbol": "BTC-SWAP-USDC",
"side": "BUY_OPEN",
"type": "LIMIT",
"price": 16500,
"quantity": 10,
"priceType": "INPUT"
},
{
"newClientOrderId": "pl2023010712345678901",
"symbol": "BTC-SWAP-USDC",
"side": "BUY_OPEN",
"type": "LIMIT",
"price": 16000,
"quantity": 10,
"priceType": "INPUT"
} ]' '#HOST/api/v1/futures/batchOrders?category=USDC×tamp=1673062952473&signature=f746cebecf9cf53601d2ab69b2f88f426a1c93a5f7bcc8bbdc5a2ce95c3fa976'响应:
{
"code": 200, //成功
"result": [
{
"code": 200, //成功
"order": {
"time": "1673062993867", //订单生成时的时间戳
"updateTime": "1673062993867", //订单上次更新的时间戳
"orderId": "1328143087352970240", //订单ID
"clientOrderId": "pl2023010712345678900", //用户定义的订单ID
"symbol": "BTC-SWAP-USDT",//交易对
"price": "16500",//订单价格
"leverage": "0",//订单杠杆
"origQty": "10", //订单数量
"executedQty": "0", //订单已执行数量
"avgPrice": "0", //平均交易价格
"marginLocked": "0", //该订单锁定的保证金。这包括实际需要的保证金外加开仓和平仓所需的费用。
"type": "LIMIT", // 订单类型(LIMIT和STOP)
"side": "BUY_OPEN", // 订单方向(BUY_OPEN、SELL_OPEN、BUY_CLOSE、SELL_CLOSE)
"timeInForce": "GTC", // 时效单(Time in Force)类型(GTC、FOK、IOC)
"status": "NEW", //订单状态(NEW、PARTIALLY_FILLED、FILLED、CANCELED、REJECTED)
"priceType": "INPUT" //价格类型(INPUT、MARKET)
}
},
{
"code": -1131, //失败
"msg": "Balance insufficient " //失败原因
}
]
}参数
| 名称 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| LIST | YES | RequestBody 参数 | |
| timestamp | LONG | YES | 时间戳 |
| recvWindow | LONG | NO | recv窗口 |
其中RequestBody中batchOrders应以list of JSON格式填写订单参数
| 名称 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| symbol | STRING | YES | 交易对 |
| side | ENUM | YES | 下单方向,方向类型为BUY_OPEN、SELL_OPEN、BUY_CLOSE、SELL_CLOSE |
| type | ENUM | YES | 订单类型,支持订单类型为LIMIT和STOP |
| quantity | LONG | YES | 订单的合约数量(张) |
| valueQuantity | LONG | NO | 订单的价值数量(USDT)例如购买2个BTC,价格=1000, 订单价值=2*1000=2000 。valueQuantity和quantity同时存在优先使用quantity |
| price | DECIMAL | NO | 订单价格 (LIMIT&INPUT)订单 强制需要 |
| priceType | ENUM | NO | 价格类型,支持的价格类型为INPUT、MARKET |
| timeInForce | ENUM | NO | LIMIT订单的时间指令(Time in Force),目前支持的类型为GTC、FOK、IOC |
| newClientOrderId | STRING | YES | 订单的ID,用户自己定义 ,不可以重复出现在挂单中 |
注意:
- 对于 市价订单, 你需要设置
type为LIMIT并且设置priceType为MARKET。你可以在brokerInfo端点获取合约价格,数量的精度配置信息。 - 如果你的余额没有达到需要保证金的要求(初始保证金+开仓手续费+平仓手续费),将会有
insufficient balance(余额不足)的错误返回。
查询订单 (USER_DATA)
GET /api/v1/futures/order
权重:1
响应:
普通委托单(LIMIT)查询返回结果:
{
"time": "1668418485058", // 订单生成时的时间戳
"updateTime": "1668418485058", // 订单上次更新的时间戳
"orderId": "1289182123551455488", //订单ID
"clientOrderId": "test1115", //用户定义的订单ID
"symbol": "BTC-SWAP-USDT", //交易对
"price": "19000", //订单价格
"leverage": "2", //订单杠杆
"origQty": "10", //订单数量
"executedQty": "0", //订单已执行数量
"executeQty": "0", //订单执行数量(与executedQty相同)
"avgPrice": "0", //平均交易价格
"marginLocked": "9.5", //该订单锁定的保证金。这包括实际需要的保证金外加开仓和平仓所需的费用。
"type": "LIMIT", // 订单类型
"side": "BUY_OPEN", // 订单方向(BUY_OPEN、SELL_OPEN、BUY_CLOSE、SELL_CLOSE)
"timeInForce": "GTC", // 时效单(Time in Force)类型(GTC、FOK、IOC)
"status": "NEW", //订单状态(NEW、PARTIALLY_FILLED、FILLED、CANCELED、REJECTED)
"priceType": "INPUT", //价格类型(INPUT、MARKET)
"contractMultiplier": "0.001" //合约乘数
}计划委托单(STOP)查询返回结果:
{
"time": "1767952799216", // 订单生成时的时间戳
"orderId": "2124136467689134848", // 订单ID
"accountId": "2017364659728852481", // 账户ID
"clientOrderId": "1767952799112", // 用户定义的订单ID
"symbol": "BTC-SWAP-USDT", // 交易对
"price": "0", // 触发后挂单的价格(市价单时为0)
"leverage": "20", // 订单杠杆
"origQty": "2", // 订单数量
"executedOrderId": "0", // 已执行的订单ID(未触发时为0)
"type": "STOP", // 订单类型
"side": "BUY_OPEN", // 订单方向(BUY_OPEN、SELL_OPEN、BUY_CLOSE、SELL_CLOSE)
"status": "ORDER_NEW", // 订单状态(ORDER_NEW、ORDER_FILLED、ORDER_CANCELED等)
"priceType": "MARKET", // 触发后挂单的价格类型(INPUT、MARKET)
"stopPrice": "95000", // 触发价格
"triggerBy": "CONTRACT_PRICE", // 触发价格类型(MARK_PRICE、CONTRACT_PRICE)
"triggerType": 0, // 触发类型(0=固定触发)
"orderType": "STOP_COMMON" // 计划委托订单类型
}止盈止损单(STOP_PROFIT_LOSS)查询返回结果:
{
"time": "1767953932589", // 订单生成时的时间戳
"orderId": "2124145975077395200", // 订单ID
"accountId": "2017364659728852481", // 账户ID
"clientOrderId": "STOP_LONG_PROFIT_1767953932496", // 用户定义的订单ID(系统自动生成)
"symbol": "BTC-SWAP-USDT", // 交易对
"price": "0", // 止盈止损生效时使用的限价单价格(市价单时为0)
"leverage": "20", // 订单杠杆
"origQty": "1", // 订单数量
"executedOrderId": "0", // 已执行的订单ID(未触发时为0)
"type": "STOP_PROFIT_LOSS", // 订单类型
"side": "SELL_CLOSE", // 订单方向(BUY_OPEN、SELL_OPEN、BUY_CLOSE、SELL_CLOSE)
"status": "ORDER_NEW", // 订单状态(ORDER_NEW、ORDER_FILLED、ORDER_CANCELED等)
"priceType": "MARKET", // 价格类型(INPUT、MARKET)
"stopPrice": "98000", // 触发价格
"triggerBy": "CONTRACT_PRICE", // 触发价格类型(MARK_PRICE、CONTRACT_PRICE)
"triggerType": 0, // 触发类型(0=固定触发,1=动态触发)
"activePrice": "0", // 激活价格(追踪止损时使用,固定止损时为0)
"fallType": 0, // 回调类型(0=无,1=RATE比例,2=PRICE价差)
"fallQuantity": "0", // 回调数量(追踪止损时使用,固定止损时为0)
"activeStatus": 0, // 激活状态(0=未激活,1=已激活)
"orderType": "STOP_LONG_PROFIT" // 止盈止损订单类型(STOP_LONG_PROFIT、STOP_LONG_LOSS、STOP_SHORT_PROFIT、STOP_SHORT_LOSS等)
}参数
| 名称 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| orderId | LONG | NO | 订单ID |
| origClientOrderId | STRING | NO | 用户定义的订单ID |
| type | ENUM | NO | 订单类型(LIMIT、STOP) |
| category | ENUM | NO | USDC合约=USDC, 默认=USDT合约. |
| timestamp | LONG | YES | 时间戳 |
| recvWindow | LONG | NO | recv窗口 |
注意:
orderId或者origClientOrderId必须发送其中之一type参数仅支持LIMIT和STOP。当type为STOP时,查询结果可能是计划委托单(STOP)或止盈止损单(STOP_PROFIT_LOSS),具体返回类型由订单ID或客户端订单ID指定的订单类型决定
修改订单 (TRADE)
POST /api/v1/futures/order/update
修改订单,支持普通委托单(LIMIT)、计划委托单(STOP)、止盈止损单(STOP_PROFIT_LOSS)的修改。该接口需要请求签名。
权重:2
响应:
普通委托单(LIMIT)改单返回结果:
{
"time": "1767952682388", // 订单生成时的时间戳
"updateTime": "1767952682388", // 订单上次更新的时间戳
"orderId": "2124135487564299264", // 订单ID
"clientOrderId": "1767952681690", // 用户定义的订单ID
"symbol": "ETH-SWAP-USDT", // 交易对
"price": "4000", // 订单价格
"leverage": "20", // 订单杠杆
"origQty": "1", // 订单数量
"executedQty": "0", // 订单已执行数量
"executeQty": "0", // 订单执行数量(与executedQty相同)
"avgPrice": "0", // 平均交易价格
"marginLocked": "2", // 该订单锁定的保证金
"type": "LIMIT", // 订单类型
"side": "BUY_OPEN", // 订单方向(BUY_OPEN、SELL_OPEN、BUY_CLOSE、SELL_CLOSE)
"timeInForce": "GTC", // 时效单类型(GTC、FOK、IOC)
"status": "PENDING_NEW", // 订单状态(PENDING_NEW、NEW、PARTIALLY_FILLED、FILLED、CANCELED、REJECTED)
"priceType": "INPUT", // 价格类型(INPUT、MARKET)
"contractMultiplier": "0.01000000" // 合约乘数
}计划委托单(STOP)改单返回结果:
{
"time": "1767952799216", // 订单生成时的时间戳
"orderId": "2124136467689134848", // 订单ID
"accountId": "2017364659728852481", // 账户ID
"clientOrderId": "1767952799112", // 用户定义的订单ID
"symbol": "BTC-SWAP-USDT", // 交易对
"price": "0", // 触发后挂单的价格(市价单时为0)
"leverage": "20", // 订单杠杆
"origQty": "2", // 订单数量
"executedOrderId": "0", // 已执行的订单ID(未触发时为0)
"type": "STOP", // 订单类型
"side": "BUY_OPEN", // 订单方向(BUY_OPEN、SELL_OPEN、BUY_CLOSE、SELL_CLOSE)
"status": "ORDER_NEW", // 订单状态(ORDER_NEW、ORDER_FILLED、ORDER_CANCELED等)
"priceType": "MARKET", // 触发后挂单的价格类型(INPUT、MARKET)
"stopPrice": "95000", // 触发价格
"triggerBy": "CONTRACT_PRICE", // 触发价格类型(MARK_PRICE、CONTRACT_PRICE)
"triggerType": 0, // 触发类型(0=固定触发)
"orderType": "STOP_COMMON" // 计划委托订单类型
}止盈止损单(STOP_PROFIT_LOSS)改单返回结果:
{
"time": "1767953932589", // 订单生成时的时间戳
"orderId": "2124145975077395200", // 订单ID
"accountId": "2017364659728852481", // 账户ID
"clientOrderId": "STOP_LONG_PROFIT_1767953932496", // 用户定义的订单ID(系统自动生成)
"symbol": "BTC-SWAP-USDT", // 交易对
"price": "0", // 止盈止损生效时使用的限价单价格(市价单时为0)
"leverage": "20", // 订单杠杆
"origQty": "1", // 订单数量
"executedOrderId": "0", // 已执行的订单ID(未触发时为0)
"type": "STOP_PROFIT_LOSS", // 订单类型
"side": "SELL_CLOSE", // 订单方向(BUY_OPEN、SELL_OPEN、BUY_CLOSE、SELL_CLOSE)
"status": "ORDER_NEW", // 订单状态(ORDER_NEW、ORDER_FILLED、ORDER_CANCELED等)
"priceType": "MARKET", // 价格类型(INPUT、MARKET)
"stopPrice": "98000", // 触发价格
"triggerBy": "CONTRACT_PRICE", // 触发价格类型(MARK_PRICE、CONTRACT_PRICE)
"triggerType": 0, // 触发类型(0=固定触发,1=动态触发)
"activePrice": "0", // 激活价格(追踪止损时使用,固定止损时为0)
"fallType": 0, // 回调类型(0=无,1=RATE比例,2=PRICE价差)
"fallQuantity": "0", // 回调数量(追踪止损时使用,固定止损时为0)
"activeStatus": 0, // 激活状态(0=未激活,1=已激活)
"orderType": "STOP_LONG_PROFIT" // 止盈止损订单类型(STOP_LONG_PROFIT、STOP_LONG_LOSS、STOP_SHORT_PROFIT、STOP_SHORT_LOSS等)
}参数
| 名称 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| orderId | LONG | NO | 订单ID(与origClientOrderId二选一) |
| origClientOrderId | STRING | NO | 原始客户端订单ID(与orderId二选一) |
| newClientOrderId | STRING | NO | 新订单的客户端订单ID(可选,不提供则系统自动生成,止盈止损时忽略由系统生成) |
| type | STRING | YES | 订单类型:LIMIT、STOP、STOP_PROFIT_LOSS |
| quantity | DECIMAL | NO | 订单数量(所有订单类型都支持) |
| valueQuantity | DECIMAL | NO | 订单价值数量(所有订单类型都支持) |
| price | DECIMAL | NO | 订单价格(限价单必填) |
| priceType | STRING | NO | 价格类型:INPUT(限价)、MARKET(市价) |
| stopPrice | DECIMAL | NO | 触发价格(计划委托单和止盈止损单必填) |
| triggerBy | STRING | NO | 触发价格类型:MARK_PRICE(标记价格)、CONTRACT_PRICE(合约最新价,默认) |
| stopType | STRING | NO | 止损类型(止盈止损单):FIXED_STOP(固定止损,默认)、TRAILING_STOP(追踪止损) |
| activePrice | DECIMAL | NO | 激活价格(追踪止损时使用,必须大于0) |
| fallbackType | STRING | NO | 回调类型(追踪止损时必填):RATE(比例)、PRICE(价差) |
| fallbackQuantity | DECIMAL | NO | 回调数量(追踪止损时必填,必须大于0) |
| category | STRING | NO | USDC合约=USDC,默认=USDT合约 |
| timestamp | LONG | YES | 时间戳 |
| recvWindow | LONG | NO | recv窗口 |
改单验证规则
参数完整性检查:
- 所有订单类型:如果所有可修改参数都不输入,会报参数错误
- 普通委托单:
quantity、valueQuantity、priceType、price都不输入时报错 - 计划委托单:
quantity、valueQuantity、stopPrice、triggerBy、priceType、price都不输入时报错 - 止盈止损单:
quantity、valueQuantity、stopPrice、triggerBy、priceType、price、stopType、activePrice、fallbackType、fallbackQuantity都不输入时报错
参数沿用规则:
- 如果某个参数不输入,系统会使用原始订单的对应值
- 如果某个参数输入了,通常使用输入的值
- 但部分字段输入0时也会使用原始订单的值(如
stopPrice输入0时使用原始订单的stopPrice),具体参考各参数的详细说明
相等判断:
- 如果所有字段都与原始订单相同,会报参数错误
改单限制规则:
- 改单不支持更改订单方向(
side)和交易对(symbol),这些信息会从原订单中自动获取 - 普通委托单(LIMIT)的订单状态必须是
NEW或PARTIALLY_FILLED(非终态)才能修改 - 计划委托单(STOP)和止盈止损单(STOP_PROFIT_LOSS)的订单状态必须是
ORDER_NEW才能修改
- 改单不支持更改订单方向(
订单类型说明
普通委托单(LIMIT)支持修改:
- 价格类型(
priceType):INPUT(限价)、MARKET(市价) - 价格(
price):如果限价时必填 - 数量(
quantity/valueQuantity):至少提供一个
计划委托单(STOP)支持修改:
- 触发价格(
stopPrice):必填 - 触发价格类型(
triggerBy):MARK_PRICE(标记价格)、CONTRACT_PRICE(合约最新价,默认) - 触发后挂单的价格类型(
priceType):INPUT(限价)、MARKET(市价) - 触发后挂单的价格(
price):如果限价时必填 - 数量(
quantity/valueQuantity):至少提供一个
止盈止损单(STOP_PROFIT_LOSS)支持修改:
- 每次只能改一个订单(要么改止盈,要么改止损)
- 使用
orderId或origClientOrderId来指定要改的订单(系统会自动判断是止盈还是止损) - 数量(
quantity/valueQuantity):支持按数量或价值数量改单,详见下方"参数使用方法说明" - 触发价格(
stopPrice):必填,止盈或止损的触发价格 - 触发价格类型(
triggerBy):MARK_PRICE(标记价格)、CONTRACT_PRICE(合约最新价,默认) - 限价单价格(
price):可选,止盈止损生效时使用的限价单价格(传0或不传则认为是市价委托) - 止损类型(
stopType):FIXED_STOP(固定止损,默认)、TRAILING_STOP(追踪止损) - 追踪止损参数(
stopType=TRAILING_STOP时):activePrice:可选,激活价格(必须大于0)fallbackType:必填,回调类型,RATE(比例)、PRICE(价差)fallbackQuantity:必填,回调数量(必须大于0)
参数使用方法说明
基础参数
| 参数 | 说明 |
|---|---|
orderId / origClientOrderId | 二选一必填,用于指定要修改的订单。如果两个都传了,以orderId为准 |
newClientOrderId | 可选,新订单的客户端订单ID。不提供则系统自动生成(止盈止损单忽略此参数) |
type | 必填,必须与原始订单类型一致:LIMIT、STOP、STOP_PROFIT_LOSS |
数量参数(quantity / valueQuantity)
普通委托单(LIMIT)和计划委托单(STOP):
- 如果
quantity不输入或为0,且valueQuantity不输入或为0,则使用原始订单的数量(如果普通委托单是部分成交的情况,改单后的数量为原订单剩余未成交数量) - 如果
quantity输入了大于0的值,valueQuantity会被忽略(视为0) - 如果
quantity不输入或为0,且valueQuantity输入了大于0的值,则使用valueQuantity进行改单
止盈止损单(STOP_PROFIT_LOSS):
固定止盈止损(FIXED_STOP):
- 如果
quantity不输入,且valueQuantity不输入或为0,则使用原始订单的数量 - 如果
quantity输入了大于等于0的值,valueQuantity会被忽略(视为0)quantity可以输入0(表示仓位止盈止损,即所有仓位都会止盈或止损)quantity可以输入大于0的值(表示分批止盈止损,指定的这些数量会止盈或止损)
- 如果
quantity不输入,且valueQuantity输入了大于0的值,则使用valueQuantity进行改单
- 如果
动态止盈止损(TRAILING_STOP):
- 如果
quantity不输入或为0,且valueQuantity不输入或为0,则使用原始订单的数量 - 如果
quantity输入了大于0的值,valueQuantity会被忽略(视为0) - 如果
quantity不输入或为0,且valueQuantity输入了大于0的值,则使用valueQuantity进行改单
- 如果
价格参数(price / priceType)
普通委托单(LIMIT)和计划委托单(STOP):
priceType不输入时,从原始订单获取价格类型- 如果
priceType=INPUT且price不输入或为0,则使用原始订单的价格 - 如果
priceType=INPUT且price输入了大于0的值,则使用输入的price - 如果
priceType=MARKET,则price不需要输入(市价单不允许改单)
止盈止损单(STOP_PROFIT_LOSS):
固定止盈止损(固定触发改固定触发):
priceType不输入时,从原始订单获取价格类型- 如果
priceType=INPUT且price不输入或为0,则使用原始订单的价格(原始订单为市价单时需指定价格)
固定止盈止损(动态触发改固定触发):
priceType必填- 如果
priceType=INPUT,则price必填且必须大于0
触发价格参数(stopPrice / triggerBy)
计划委托单(STOP):
stopPrice不输入或为0时,使用原始订单的stopPricetriggerBy不输入时,从原始订单获取触发价格类型
止盈止损单(STOP_PROFIT_LOSS):
固定止盈止损(固定触发改固定触发):
stopPrice不输入或为0时,使用原始订单的stopPricetriggerBy不输入时,从原始订单获取触发价格类型
固定止盈止损(动态触发改固定触发):
stopPrice必填且必须大于0triggerBy必填
追踪止损参数(activePrice / fallbackType / fallbackQuantity)
动态止盈止损(TRAILING_STOP):
固定触发改动态触发:
fallbackType必填triggerBy必填fallbackQuantity必填且必须大于0quantity或valueQuantity必须输入一个大于0的值activePrice可选,如果输入了必须大于0
动态触发改动态触发:
fallbackType不输入时,从原始订单获取回调类型triggerBy不输入时,从原始订单获取触发价格类型fallbackQuantity不输入或为0时,使用原始订单的fallbackQuantityactivePrice不输入时,使用原始订单的activePriceactivePrice输入0时,finalActivePrice为空字符串activePrice输入大于0的值时,使用输入的activePrice
撤销订单 (TRADE)
DELETE /api/v1/futures/order
权重:1
响应:
普通委托单(LIMIT)撤销返回结果:
{
"time": "1668418485058", // 订单生成时的时间戳
"updateTime": "1668418485058", // 订单上次更新的时间戳
"orderId": "1289182123551455488", //订单ID
"clientOrderId": "test1115", //用户定义的订单ID
"symbol": "BTC-SWAP-USDT", //交易对
"price": "19000", //订单价格
"leverage": "2", //订单杠杆
"origQty": "10", //订单数量
"executedQty": "0", //订单已执行数量
"executeQty": "0", //订单执行数量(与executedQty相同)
"avgPrice": "0", //平均交易价格
"marginLocked": "9.5", //该订单锁定的保证金。这包括实际需要的保证金外加开仓和平仓所需的费用。
"type": "LIMIT", // 订单类型
"side": "BUY_OPEN", // 订单方向(BUY_OPEN、SELL_OPEN、BUY_CLOSE、SELL_CLOSE)
"timeInForce": "GTC", // 时效单(Time in Force)类型(GTC、FOK、IOC)
"status": "CANCELED", //订单状态(NEW、PARTIALLY_FILLED、FILLED、CANCELED、REJECTED)
"priceType": "INPUT", //价格类型(INPUT、MARKET)
"contractMultiplier": "0.001" //合约乘数
}计划委托单(STOP)撤销返回结果:
{
"time": "1767952799216", // 订单生成时的时间戳
"orderId": "2124136467689134848", // 订单ID
"accountId": "2017364659728852481", // 账户ID
"clientOrderId": "1767952799112", // 用户定义的订单ID
"symbol": "BTC-SWAP-USDT", // 交易对
"price": "0", // 触发后挂单的价格(市价单时为0)
"leverage": "20", // 订单杠杆
"origQty": "2", // 订单数量
"executedOrderId": "0", // 已执行的订单ID(未触发时为0)
"type": "STOP", // 订单类型
"side": "BUY_OPEN", // 订单方向(BUY_OPEN、SELL_OPEN、BUY_CLOSE、SELL_CLOSE)
"status": "ORDER_CANCELED", // 订单状态(ORDER_NEW、ORDER_FILLED、ORDER_CANCELED等)
"priceType": "MARKET", // 触发后挂单的价格类型(INPUT、MARKET)
"stopPrice": "95000", // 触发价格
"triggerBy": "CONTRACT_PRICE", // 触发价格类型(MARK_PRICE、CONTRACT_PRICE)
"triggerType": 0, // 触发类型(0=固定触发)
"orderType": "STOP_COMMON" // 计划委托订单类型
}止盈止损单(STOP_PROFIT_LOSS)撤销返回结果:
{
"time": "1767953932589", // 订单生成时的时间戳
"orderId": "2124145975077395200", // 订单ID
"accountId": "2017364659728852481", // 账户ID
"clientOrderId": "STOP_LONG_PROFIT_1767953932496", // 用户定义的订单ID(系统自动生成)
"symbol": "BTC-SWAP-USDT", // 交易对
"price": "0", // 止盈止损生效时使用的限价单价格(市价单时为0)
"leverage": "20", // 订单杠杆
"origQty": "1", // 订单数量
"executedOrderId": "0", // 已执行的订单ID(未触发时为0)
"type": "STOP_PROFIT_LOSS", // 订单类型
"side": "SELL_CLOSE", // 订单方向(BUY_OPEN、SELL_OPEN、BUY_CLOSE、SELL_CLOSE)
"status": "ORDER_CANCELED", // 订单状态(ORDER_NEW、ORDER_FILLED、ORDER_CANCELED等)
"priceType": "MARKET", // 价格类型(INPUT、MARKET)
"stopPrice": "98000", // 触发价格
"triggerBy": "CONTRACT_PRICE", // 触发价格类型(MARK_PRICE、CONTRACT_PRICE)
"triggerType": 0, // 触发类型(0=固定触发,1=动态触发)
"activePrice": "0", // 激活价格(追踪止损时使用,固定止损时为0)
"fallType": 0, // 回调类型(0=无,1=RATE比例,2=PRICE价差)
"fallQuantity": "0", // 回调数量(追踪止损时使用,固定止损时为0)
"activeStatus": 0, // 激活状态(0=未激活,1=已激活)
"orderType": "STOP_LONG_PROFIT" // 止盈止损订单类型(STOP_LONG_PROFIT、STOP_LONG_LOSS、STOP_SHORT_PROFIT、STOP_SHORT_LOSS等)
}参数
| 名称 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| orderId | LONG | NO | 订单ID |
| origClientOrderId | STRING | NO | 用户定义的订单ID |
| type | ENUM | NO | 订单类型(LIMIT和STOP) |
| symbol | STRING | NO | 交易对 |
| category | ENUM | NO | USDC合约=USDC, 默认=USDT合约. |
| timestamp | LONG | YES | 时间戳 |
| recvWindow | LONG | NO | recv窗口 |
注意:
orderId或者origClientOrderId必须发送其中之一type参数仅支持LIMIT和STOP。当type为STOP时,撤销结果可能是计划委托单(STOP)或止盈止损单(STOP_PROFIT_LOSS),具体返回类型由订单ID或客户端订单ID指定的订单类型决定
撤销全部订单 (TRADE)
DELETE /api/v1/futures/batchOrders
权重:3
响应:
{
"code": 200,
"message": "success",
"timestamp": 1541161088303
}参数
| 名称 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| symbol | STRING | YES | 交易对 (或者用,分割的交易对的list) |
| side | ENUM | YES | BUY或SELL |
| category | ENUM | NO | USDC合约=USDC, 默认=USDT合约. |
| timestamp | LONG | YES | 时间戳 |
| recvWindow | LONG | NO | recv窗口 |
批量撤销订单 (TRADE)
DELETE /api/v1/futures/cancelOrderByIds
批量撤销订单。单次最多100条。
权重:3
响应
// 取消成功
{
"code":200, //代表执行成功
"result":[]
}
// 取消部分或全部失败
{
"code":200,
"result":[
{
"orderId":"1327047813809448704",
"code":-2013
},
{
"orderId":"1327047814212101888",
"code":-2013
}
]
}参数
| 名称 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| ids | STRING | YES | 订单id(多个用,隔开) |
| category | ENUM | NO | USDC合约=USDC, 默认=USDT合约. |
| timestamp | LONG | YES | 时间戳 |
| recvWindow | LONG | NO | recv窗口 |
注意:code返回200代表撤单请求被执行,是否成功还需要看result里的结果,如果result为空代表全部成功,不为空orderId代表撤销失败的订单id,code代表撤销失败原因。
查看当前全部挂单 (USER_DATA)
GET /api/v1/futures/openOrders
权重:1
响应:
[
{
"time": "1570760254539", //订单生成时的时间戳
"updateTime": "1570760254539", //订单上次更新的时间戳
"orderId": "469965509788581888", // 订单ID
"clientOrderId": "1570760253946", //用户定义的订单ID
"symbol": "BTC-SWAP-USDT", // 交易对
"price": "8502.34", // 订单价格
"leverage": "20", //订单杠杆
"origQty": "222", // 订单数量
"executedQty": "0", // 订单已执行数量
"executeQty": "0", //订单执行数量(与executedQty相同)
"avgPrice": "0", // 平均交易价格
"marginLocked": "0.00130552", // 该订单锁定的保证金。这包括实际需要的保证金外加开仓和平仓所需的费用。
"type": "LIMIT", // 订单类型
"side": "BUY_OPEN", // 订单方向(BUY_OPEN、SELL_OPEN、BUY_CLOSE、SELL_CLOSE)
"timeInForce": "GTC", //时效单(Time in Force)类型(GTC、FOK、IOC)
"status": "NEW", // 订单状态(NEW、PARTIALLY_FILLED、FILLED、CANCELED、REJECTED)
"priceType": "INPUT", //价格类型(INPUT、MARKET)
"contractMultiplier": "0.001" //合约乘数
},
{
"time": "1767952799216", // 订单生成时的时间戳
"orderId": "2124136467689134848", // 订单ID
"accountId": "2017364659728852481", // 账户ID
"clientOrderId": "1767952799112", // 用户定义的订单ID
"symbol": "BTC-SWAP-USDT", // 交易对
"price": "0", // 触发后挂单的价格(市价单时为0)
"leverage": "20", // 订单杠杆
"origQty": "2", // 订单数量
"executedOrderId": "0", // 已执行的订单ID(未触发时为0)
"type": "STOP", // 订单类型
"side": "BUY_OPEN", // 订单方向(BUY_OPEN、SELL_OPEN、BUY_CLOSE、SELL_CLOSE)
"status": "ORDER_NEW", // 订单状态(ORDER_NEW、ORDER_FILLED、ORDER_CANCELED等)
"priceType": "MARKET", // 触发后挂单的价格类型(INPUT、MARKET)
"stopPrice": "95000", // 触发价格
"triggerBy": "CONTRACT_PRICE", // 触发价格类型(MARK_PRICE、CONTRACT_PRICE)
"triggerType": 0, // 触发类型(0=固定触发)
"orderType": "STOP_COMMON" // 计划委托订单类型
},
{
"time": "1767953932589", // 订单生成时的时间戳
"orderId": "2124145975077395200", // 订单ID
"accountId": "2017364659728852481", // 账户ID
"clientOrderId": "STOP_LONG_PROFIT_1767953932496", // 用户定义的订单ID(系统自动生成)
"symbol": "BTC-SWAP-USDT", // 交易对
"price": "0", // 止盈止损生效时使用的限价单价格(市价单时为0)
"leverage": "20", // 订单杠杆
"origQty": "1", // 订单数量
"executedOrderId": "0", // 已执行的订单ID(未触发时为0)
"type": "STOP_PROFIT_LOSS", // 订单类型
"side": "SELL_CLOSE", // 订单方向(BUY_OPEN、SELL_OPEN、BUY_CLOSE、SELL_CLOSE)
"status": "ORDER_NEW", // 订单状态(ORDER_NEW、ORDER_FILLED、ORDER_CANCELED等)
"priceType": "MARKET", // 价格类型(INPUT、MARKET)
"stopPrice": "98000", // 触发价格
"triggerBy": "CONTRACT_PRICE", // 触发价格类型(MARK_PRICE、CONTRACT_PRICE)
"triggerType": 0, // 触发类型(0=固定触发,1=动态触发)
"activePrice": "0", // 激活价格(追踪止损时使用,固定止损时为0)
"fallType": 0, // 回调类型(0=无,1=RATE比例,2=PRICE价差)
"fallQuantity": "0", // 回调数量(追踪止损时使用,固定止损时为0)
"activeStatus": 0, // 激活状态(0=未激活,1=已激活)
"orderType": "STOP_LONG_PROFIT" // 止盈止损订单类型(STOP_LONG_PROFIT、STOP_LONG_LOSS、STOP_SHORT_PROFIT、STOP_SHORT_LOSS等)
}
]参数
| 名称 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| symbol | STRING | NO | 交易对 |
| orderId | LONG | NO | 订单ID |
| type | ENUM | NO | 默认LIMIT 订单类型(LIMIT、STOP、STOP_PROFIT_LOSS) |
| limit | INT | NO | 返回条数 默认20 最小1 最大1000 |
| category | ENUM | NO | USDC合约=USDC, 默认=USDT合约. |
| timestamp | LONG | YES | 时间戳 |
| recvWindow | LONG | NO | recv窗口 |
注意:
- 如果发送了
orderId,会返回所有<orderId的订单。如果没有则会返回最新的未完成订单。
查询当前持仓 (USER_DATA)
GET /api/v1/futures/positions
返回现在的仓位信息,这个API需要请求签名。
权重:5
响应
[
{
"symbol": "BTC-SWAP-USDT",
"side": "LONG",//仓位方向
"avgPrice": "24000", //平均开仓价格
"position": "10", //开仓数量(张)
"available": "10", //可平仓数量(张)
"leverage": "2", //仓位现在杠杆
"lastPrice": "16854.4", //合约最新市场成交价
"positionValue": "24", //仓位价值
"flp": "12077.8", //强制平仓价格
"margin": "11.9825", //仓位保证金
"marginRate": "0.4992", //当前仓位的保证金率
"unrealizedPnL": "0", //当前仓位的未实现盈亏
"profitRate": "0", //当前仓位的盈利率
"realizedPnL": "-0.018", //当前 合约 的已实现盈亏
"maxNotionalValue": "60000", // 当前杠杆倍数最大可持仓张数
"marginType": "ISOLATED", // 仓位模式 ISOLATED、CROSSED
"markPrice": "16854.2" // 标记价格
}
]参数
| 名称 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| symbol | STRING | NO | 交易对 |
| side | ENUM | NO | 仓位方向,LONG(多仓)或者SHORT(空仓)。 |
| category | ENUM | NO | USDC合约=USDC, 默认=USDT合约. |
| timestamp | LONG | YES | 时间戳 |
| recvWindow | LONG | NO | recv窗口 |
注意:
- 如果
symbol没有发送,所有的合约仓位信息都会被返回。 - 如果
side没有发送,两个方向的仓位信息都会被返回。
查询历史仓位列表 (USER_DATA)
GET /api/v1/futures/historyPositions
查询已平仓的历史仓位列表。该接口需要请求签名。
权重:5
响应:
[
{
"symbol": "BTC-SWAP-USDT", // 合约标识
"side": "LONG", // 持仓方向:LONG(多仓)、SHORT(空仓)
"position": "10", // 总持仓数量
"openValue": "240000", // 开仓价值
"closeValue": "250000", // 平仓价值
"closeTotalQty": "10", // 累计平仓数量
"maxPosition": "10", // 历史最大持仓
"leverage": "20", // 杠杆倍数
"marginType": "ISOLATED", // 保证金类型:ISOLATED(逐仓)、CROSS(全仓)
"realizedPnL": "1000", // 已实现盈亏
"realizedPnlRate": "0.0042", // 已实现盈亏率
"realizedPnlWithoutFee": "1000.5", // 不含手续费的已实现盈亏
"unrealizedPnL": "0", // 未实现盈亏(部分平仓时才有值)
"unrealizedPnlRate": "0", // 未实现盈亏率(部分平仓时才有值)
"status": "CLOSED", // 状态:PARTIAL_CLOSE(部分平仓)、CLOSED(已平仓)
"openAvgPrice": "24000", // 开仓均价
"closeAvgPrice": "25000", // 平仓均价
"openFee": "0.1", // 开仓手续费
"closeFee": "0.1", // 平仓手续费
"openTime": 1579007187214, // 开仓时间戳(毫秒)
"closeTime": 1579093587214, // 平仓时间戳(毫秒)
"id": "1000" // 历史持仓ID(用于分页游标)
}
]参数
| 名称 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| symbol | STRING | NO | 交易对 |
| marginType | STRING | NO | 保证金类型:ISOLATED(逐仓)、CROSS(全仓) |
| fromId | LONG | NO | 起始历史持仓ID(用于分页),默认0 |
| toId | LONG | NO | 结束历史持仓ID(用于分页),默认0 |
| startTime | LONG | NO | 开始时间戳,默认0 |
| endTime | LONG | NO | 结束时间戳,默认0 |
| limit | INT | NO | 返回条数,默认20,最小1,最大1000 |
| category | STRING | NO | USDC合约=USDC,默认=USDT合约 |
| timestamp | LONG | YES | 时间戳 |
| recvWindow | LONG | NO | recv窗口 |
注意:
fromId和toId必须大于等于0startTime和endTime必须大于等于0- 如果
startTime和endTime都大于0,则startTime必须小于等于endTime - 历史持仓查询只返回已平仓的记录,不会返回
NOT_CLOSED状态 - 使用
fromId或toId进行分页查询时,建议配合limit参数使用
设置持仓止盈止损
POST /api/v1/futures/position/trading-stop
设置持仓的止盈止损,支持固定止损和追踪止损。这个API需要请求签名。
权重:3
响应(固定止损)
{
"symbol": "BTC-SWAP-USDT",
"side": "LONG",
"takeProfit": "29037.2",
"stopLoss": "27037",
"tpTriggerBy": "CONTRACT_PRICE",
"slTriggerBy": "CONTRACT_PRICE",
"tpSize": "10",
"slSize": "5"
}响应(追踪止损)
{
"symbol": "BTC-SWAP-USDT",
"side": "LONG",
"takeProfit": "",
"stopLoss": "",
"tpTriggerBy": "",
"slTriggerBy": "CONTRACT_PRICE",
"tpSize": "",
"slSize": "10",
"stopType": "TRAILING_STOP",
"activePrice": "28000",
"fallbackType": "RATE",
"fallbackQuantity": "0.01"
}参数
| 名称 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| symbol | STRING | YES | 交易对 |
| side | ENUM | YES | 仓位方向,LONG(多仓)或者SHORT(空仓) |
| takeProfit | STRING | NO | 止盈价格(固定止损时使用) |
| stopLoss | STRING | NO | 止损价格(固定止损时使用) |
| tpTriggerBy | ENUM | NO | 止盈条件单参数。触发类型:MARK_PRICE(标记价格), CONTRACT_PRICE(合约最新价)。默认 CONTRACT_PRICE |
| slTriggerBy | ENUM | NO | 止损条件单参数。触发类型:MARK_PRICE(标记价格), CONTRACT_PRICE(合约最新价)。默认 CONTRACT_PRICE |
| tpSize | STRING | NO | 止盈数量,必须配合takeProfit使用 |
| slSize | STRING | NO | 止损数量。固定止损时必须配合stopLoss使用;追踪止损时用于设置平仓数量 |
| stopType | STRING | NO | 止损类型:FIXED_STOP(固定止损,默认)、TRAILING_STOP(追踪止损) |
| activePrice | STRING | NO | 激活价格(追踪止损时使用,必须大于0) |
| fallbackType | STRING | NO | 回调类型(追踪止损时必填):RATE(比例)、PRICE(价差) |
| fallbackQuantity | STRING | NO | 回调数量(追踪止损时必填,必须大于0) |
| category | ENUM | NO | USDC合约=USDC,默认=USDT合约 |
| timestamp | LONG | YES | 时间戳 |
| recvWindow | LONG | NO | recv窗口 |
注意:
- 固定止损(
stopType=FIXED_STOP或默认):- 需要设置
takeProfit和/或stopLoss - 如果设置了
tpSize,必须同时设置takeProfit - 如果设置了
slSize,必须同时设置stopLoss
- 需要设置
- 追踪止损(
stopType=TRAILING_STOP):- 不需要设置
takeProfit和stopLoss,只需要设置回调参数 fallbackType和fallbackQuantity是必填的activePrice是可选输入,但如果输入了,必须大于0slSize用于设置平仓数量,如果为空则平全部仓位
- 不需要设置
逐仓自动追加保证金开关 (TRADE)
POST /api/v1/futures/autoAddMargin
设置逐仓模式下仓位的自动追加保证金开关。该接口需要请求签名。
权重:1
响应:
{
"code": 200 // 成功
}参数
| 名称 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| symbol | STRING | YES | 交易对 |
| side | STRING | YES | 仓位方向:LONG(多仓)、SHORT(空仓) |
| enable | STRING | YES | 开关状态:ON(开启)、OFF(关闭) |
| amount | STRING | NO | 追加保证金数量(enable=ON时必填,必须大于0) |
| timestamp | LONG | YES | 时间戳 |
| recvWindow | LONG | NO | recv窗口 |
注意:
- 分仓模式不支持此接口
- 当
enable=ON时,amount参数必填且必须大于0 - 当
enable=OFF时,不需要设置amount参数
闪电平仓 (TRADE)
POST /api/v1/futures/flashClose
闪电平仓功能,系统会自动取消该仓位的所有挂单,然后以市价单平仓。该接口需要请求签名。
权重:1
响应:
{
"code": 200, // 成功
"orderId": "1289182123551455488" // 平仓单ID
}参数
| 名称 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| symbol | STRING | YES | 交易对 |
| side | STRING | YES | 仓位方向:LONG(多仓)、SHORT(空仓) |
| clientOrderId | STRING | NO | 客户端订单ID(可选,不传则自动生成) |
| timestamp | LONG | YES | 时间戳 |
| recvWindow | LONG | NO | recv窗口 |
注意:
- 分仓模式不支持此接口
- 系统会自动取消该仓位的所有挂单,然后以市价单平仓
一键反手(反向开仓) (TRADE)
POST /api/v1/futures/reversePosition
一键反手功能,系统会自动平掉当前仓位,然后反向开仓。该接口需要请求签名。
权重:5
响应:
{
"code": 200, // 成功
"orderId": "1289182123551455488" // 开仓单ID
}参数
| 名称 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| symbol | STRING | YES | 交易对 |
| side | STRING | YES | 仓位方向:LONG(多仓)、SHORT(空仓) |
| quantity | STRING | NO | 反向开仓数量(可选,不传则使用当前仓位数量) |
| timestamp | LONG | YES | 时间戳 |
| recvWindow | LONG | NO | recv窗口 |
注意:
- 分仓模式不支持此接口
- 系统会自动平掉当前仓位,然后反向开仓
- 如果
quantity未指定,使用当前仓位数量 - 如果指定了
quantity,不能超过当前持仓数量
查询历史订单 (USER_DATA)
GET /api/v1/futures/historyOrders
权重:5
响应:
[
{
"time": "1570760254539", //订单生成时的时间戳
"updateTime": "1570760254539", //订单上次更新的时间戳
"orderId": "469965509788581888", // 订单ID
"clientOrderId": "1570760253946", //用户定义的订单ID
"symbol": "BTC-SWAP-USDT", // 交易对
"price": "8502.34", // 订单价格
"leverage": "20", //订单杠杆
"origQty": "222", // 订单数量
"executedQty": "0", // 订单已执行数量
"avgPrice": "0", // 平均交易价格
"marginLocked": "0.00130552", // 该订单锁定的保证金。这包括实际需要的保证金外加开仓和平仓所需的费用。
"type": "LIMIT", // 订单类型(LIMIT和STOP)
"side": "BUY_OPEN", // 订单方向(BUY_OPEN、SELL_OPEN、BUY_CLOSE、SELL_CLOSE)
"timeInForce": "GTC", //时效单(Time in Force)类型(GTC、FOK、IOC)
"status": "CANCELED", // 订单状态(NEW、PARTIALLY_FILLED、FILLED、CANCELED、REJECTED)
"priceType": "INPUT" //价格类型(INPUT、MARKET)
}
]参数
| 名称 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| symbol | STRING | NO | 交易对 |
| orderId | LONG | NO | 订单ID |
| type | ENUM | NO | 默认LIMIT 订单类型(LIMIT、STOP) |
| startTime | LONG | NO | 开始时间戳 默认值:三天前 |
| endTime | LONT | NO | 截止时间戳 |
| limit | INT | NO | 返回条数 默认20 最小1 最大1000 |
| category | ENUM | NO | USDC合约=USDC, 默认=USDT合约. |
| timestamp | LONG | YES | 时间戳 |
| recvWindow | LONG | NO | recv窗口 |
注意:
- 如果发送了orderId,会返回所有< orderId的订单。如果没有则会返回最新的订单。
账户余额 (USER_DATA)
GET /api/v1/futures/balance
返回合约账户余额,这个端点需要请求签名。
权重:5
响应:
[
{
"asset": "USDT", //资产
"balance": "999999999999.982", //总余额
"availableBalance": "1899999999978.4995", //可用保证金,包含未实现盈亏
"positionMargin": "11.9825", //仓位保证金
"orderMargin": "9.5", //委托保证金(下单锁定)
"crossUnRealizedPnl": "10.01", //全仓未实现盈亏
"coupon": "100.5" //体验金、现金券等总和
}
]参数
| 名称 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| timestamp | LONG | YES | 时间戳 |
| recvWindow | LONG | NO | recv窗口 |
调整逐仓保证金 (TRADE)
POST /api/v1/futures/positionMargin
针对逐仓模式下的仓位,调整其逐仓保证金资金。
权重:1
响应:
{
"code":200, //响应码 200 = 成功
"msg":"success", //响应消息
"symbol":"BTC-SWAP-USDT", //交易对
"margin":15, //更新后的仓位保证金
"timestamp":1541161088303 //更新时间戳
}参数
| 名称 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| symbol | STRING | YES | 交易对 |
| side | ENUM | YES | 仓位方向,LONG(多仓)或者SHORT(空仓) |
| amount | DECIMAL | YES | 增加(正值)或者减少(负值)保证金的数量。请注意这个数量指的是合约标的定价资产(即合约结算的标的) |
| category | ENUM | NO | USDC合约=USDC, 默认=USDT合约. |
| timestamp | LONG | YES | 时间戳 |
| recvWindow | LONG | NO | recv窗口 |
账户成交历史 (USER_DATA)
GET /api/v1/futures/userTrades
获取某交易对的成交历史
权重:5
响应
[
{
"time": "1668425281370", //成交时间
"id": "1289239136943831296", //成交ID
"orderId": "1289239134670518528", //订单ID
"symbol": "BTC-SWAP-USDT", //交易对
"price": "24000",//成交价格
"qty": "9", //成交数量
"commissionAsset": "USDT", //手续费类型(Token名称)
"commission": "0.0162", //实际手续费
"makerRebate": "0", // 负maker返佣
"type": "LIMIT", //订单类型(LIMIT、MARKET)
"isMaker": false, // 是否是maker
"side": "BUY_OPEN", //订单方向(BUY_OPEN、SELL_OPEN、BUY_CLOSE、SELL_CLOSE)
"realizedPnl": "0", //成交盈亏
"ticketId": "1185465136943458745" // ticketId
}
]参数
| 名称 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| symbol | STRING | YES | 交易对 |
| fromId | LONG | NO | 从TradeId开始(用来查询成交订单) |
| toId | LONG | NO | 到TradeId结束(用来查询成交订单) |
| startTime | LONG | NO | 开始时间戳 |
| endTime | LONT | NO | 截止时间戳 |
| limit | INT | NO | 返回条数 默认20 最小1 最大1000 |
| category | ENUM | NO | USDC合约=USDC, 默认=USDT合约. |
| timestamp | LONG | YES | 时间戳 |
| recvWindow | LONG | NO | recv窗口 |
查询合约账户流水 (USER_DATA)
GET /api/v1/futures/balanceFlow
权重: 5
响应
[
{
"id": "539870570957903104",
"accountId": "122216245228131",
"coin": "BTC",
"coinId": "BTC",
"coinName": "BTC",
"symbol": "BTC-SWAP-USDT", // 交易对名称
"symbolId": "BTC-SWAP-USDT",
"flowTypeValue": 51, // 流水类型
"flowType": "USER_ACCOUNT_TRANSFER", // 流水类型名称
"flowName": "Transfer", // 流水类型说明
"change": "-12.5", // 变动值
"total": "379.624059937852365", // 变动后当前tokenId总资产
"created": "1579093587214"
}
]参数
| 参数名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| symbol | STRING | NO | 资产 |
| flowType | INT | NO | 流水类型, 3: 转账 |
| fromId | LONT | NO | 顺向查询数据 |
| endId | LONG | NO | 反向查询数据 |
| startTime | LONG | NO | 开始时间 |
| endTime | LONG | NO | 结束时间 |
| limit | INT | NO | 每页记录数 |
| category | ENUM | NO | USDC合约=USDC, 默认=USDT合约. |
| recvWindow | LONG | NO | recv窗口 |
| timestamp | LONG | YES | 时间戳 |
flowType枚举
| 类型 | 值 |
|---|---|
| 手续费 | 10 |
| 资金费 | 32 |
| PNL | 28 |
| 爆仓 | 700 |
| ADL | 701 |
申请下载文件 (USER_DATA)
POST /api/v1/download/apply
申请下载历史委托或资金流水文件。该接口需要请求签名。
权重:1000
响应:
{
"id": 1000, // 下载记录ID
"createTime": 1579093587214, // 创建时间戳
"status": "INIT", // 状态:固定为INIT(初始化),表示下载申请已创建
"downloadType": "ORDER", // 下载类型:ORDER(历史委托)、FUNDING(资金流水)
"symbol": "BTC-SWAP-USDT" // 币对,空字符串表示全部
}参数
| 名称 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| downloadType | STRING | YES | 下载类型:ORDER(历史委托)、FUNDING(资金流水) |
| category | STRING | NO | 业务类型:USDT(默认)、USDC |
| startTime | LONG | NO | 开始时间戳(毫秒),默认最近7天 |
| endTime | LONG | NO | 结束时间戳(毫秒),默认最近7天 |
| symbol | STRING | NO | 币对,默认空字符串(全部) |
| timestamp | LONG | YES | 时间戳 |
| recvWindow | LONG | NO | recv窗口 |
注意:
- 该接口返回的
status固定为INIT(初始化),表示下载申请已创建 - 要查询下载处理状态,请使用
/api/v1/download/detail接口 - 如果
startTime和endTime都没有输入,默认为最近7天的数据 - 如果
endTime指定但startTime没有指定,startTime为endTime-7天 - 如果
startTime指定但endTime没有指定,endTime为startTime+7天 - 时间戳会被转换为UTC+0日期的0点时间戳进行计算
- 每次只能申请下载一个文件
- 申请下载次数与前端请求(包括Web页面等)共享,超过每月次数限制后将无法申请下载
查询下载记录详情 (USER_DATA)
GET /api/v1/download/detail
查询下载记录的详细信息,包括下载链接。该接口需要请求签名。
权重:10
响应:
{
"id": 1000, // 下载记录ID
"createTime": 1579093587214, // 创建时间戳
"downloadType": "ORDER", // 下载类型:ORDER(历史委托)、FUNDING(资金流水)
"startTime": 1579007187214, // 开始时间戳
"endTime": 1579093587214, // 结束时间戳
"symbol": "BTC-SWAP-USDT", // 币对
"status": "SUCCESS", // 状态:INIT(初始化)、SUCCESS(成功)、FAIL(失败)、EXPIRED(过期)
"downloadLink": "https://example.com/download/file.xlsx" // 下载链接(仅状态为SUCCESS且未过期时返回)
}参数
| 名称 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| id | LONG | YES | 下载记录ID |
| timestamp | LONG | YES | 时间戳 |
| recvWindow | LONG | NO | recv窗口 |
status状态说明:
| 状态值 | 说明 |
|---|---|
| INIT | 初始化状态(下载记录刚创建时) |
| SUCCESS | 成功状态(文件已生成并上传成功) |
| FAIL | 失败状态(文件生成或上传失败) |
| EXPIRED | 过期状态(下载链接已过期) |
注意:
- 该接口返回的
status可能是INIT、SUCCESS、FAIL或EXPIRED,表示下载处理的当前状态 - 只有状态为
SUCCESS且未过期时才会返回downloadLink - 下载记录创建后的7天内,可以通过该接口获取
downloadLink;超过7天后再次请求该接口时,状态会变为EXPIRED,且不会返回downloadLink
用户手续费率 (USER_DATA)
GET /api/v1/futures/commissionRate
权重:5
响应:
{
"openMakerFee": "0.000006", //开仓挂单的手续费费率
"openTakerFee": "0.0001", //开仓吃单的手续费费率
"closeMakerFee": "0.0002", //平仓挂单的手续费费率
"closeTakerFee": "0.0004" //平仓吃单的手续费费率
}参数
| 名称 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| symbol | STRING | YES | 交易对 |
| timestamp | LONG | YES | 时间戳 |
| recvWindow | LONG | NO | recv窗口 |
今日盈亏 (USER_DATA)
GET /api/v1/futures/todayPnl
权重:5
响应:
{
"dayProfit": "100", // 今日盈亏 UTC+0 时区
"dayProfitRate": "0.01" // 今日盈亏 UTC+0 时区
}参数
| 名称 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
| category | ENUM | NO | USDC合约=USDC, 默认=USDT合约. |
| timestamp | LONG | YES | 时间戳 |
| recvWindow | LONG | NO | recv窗口 |