订单
API 权限范围
GET 请求需要 查看订单信息 权限,POST 请求需要 创建订单 权限。
订单(Order)
| 属性名称 | 类型 | 描述 | 示例 |
|---|---|---|---|
| id | number | 订单的 ID | |
| asset_pair_name | string | 交易对名称 | |
| price | string | 订单价格 | |
| amount | string | 订单数量 | |
| filled_amount | string | 已完成的数量 | |
| avg_deal_price | string | 成交的平均价格 | |
| side | string | 订单方向,ASK(卖)或 BID(买) | |
| state | string | 订单状态,可能的值为 FILLED(已完成)、PENDING(待处理)、CANCELLED(已取消)、FIRED(已启动)、REJECTED(已拒绝) | |
| created_at | string | 创建时间 | |
| updated_at | string | 更新时间 | |
| type | string | 订单类型,可能的值为 LIMIT(限价)、MARKET(交易对)、STOP_LIMIT(止损限价)、STOP_MARKET(止损市价) | |
| stop_price | string | 止损价格,仅适用于止损订单 | |
| operator | string | 操作符,可能的值为 GTE(大于等于)、LTE(小于等于) | |
| immediate_or_cancel | bool | 仅适用于 LIMIT 类型,指示是否立即成交或取消 | |
| post_only | bool | 仅适用于 LIMIT 类型,指示是否仅限于发布单(即不成交则取消) | |
| client_order_id | string | 客户订单 ID,由客户自定义用于标识订单,必须匹配 ^[a-zA-Z0-9-_]{1,36}$ 正则表达式 |
获取单个交易对的用户订单
GET /viewer/orders
请求参数
| 参数名称 | 类型 | 必填 | 描述 | 示例 |
|---|---|---|---|---|
| asset_pair_name | string | 是 | 交易对名称 | BTC-USDT |
| page_token | string | 否 | 请求此页后续数据的页标识 | |
| side | string | 否 | 订单方向,可能的值为 ASK(卖)或 BID(买) | |
| state | string | 否 | 订单状态,可能的值为 PENDING(待处理)、OPENING(开盘)、CLOSED(关闭)、NONE_FILLED(未完全成交)、ALL(所有)。默认值为 PENDING。CLOSED 表示已完成和已取消的订单,OPENING 或 PENDING 表示已启动和待处理的订单;NONE_FILLED 用于查询已关闭且未成交的订单。 | |
| limit | string | 否 | 默认值为 20,最大值为 200。 |
响应为订单数组。
{
"data": [{
"id": 10,
"asset_pair_name": "EOS-BTC",
"price": "10.00",
"amount": "10.00",
"filled_amount": "9.0",
"avg_deal_price": "12.0",
"side": "ASK",
"state": "FILLED",
"type": "LIMIT",
"stop_price": "9.8",
"operator": "LTE",
"immediate_or_cancel": true,
"post_only": false,
"client_order_id": "",
"created_at":"2019-01-29T06:05:56Z",
"updated_at":"2019-01-29T06:05:56Z"
}],
"page_token":"dxzef"
}
获取单个订单
1. 通过路径获取订单 id:
GET /viewer/orders/{id}
请求参数
| 参数名称 | 类型 | 必填 | 描述 | 示例 |
|---|---|---|---|---|
| id | string | 是 | 订单 ID | 10 |
2. 通过查询获取订单 id 或 client_order_id:
GET /viewer/order
请求参数
| 参数名称 | 类型 | 必填 | 描述 | 示例 |
|---|---|---|---|---|
| order_id | string | 否 | 订单 ID | 10 |
| client_order_id | string | 否 | 客户订单 ID |
order_id 或 client_order_id 中至少需要提供一个。如果同时提供 order_id 和 client_order_id,优先使用 order_id。
响应为订单对象:
{
"id": 10,
"asset_pair_name": "EOS-BTC",
"price": "10.00",
"amount": "10.00",
"filled_amount": "9.0",
"avg_deal_price": "12.0",
"side": "ASK",
"state": "FILLED",
"type": "LIMIT",
"stop_price": "9.8",
"operator": "LTE",
"immediate_or_cancel": true,
"post_only": false,
"client_order_id": "",
"created_at":"2019-01-29T06:05:56Z",
"updated_at":"2019-01-29T06:05:56Z"
}
创建订单
POST /viewer/orders
请求参数
| 参数名称 | 类型 | 必填 | 描述 | 示例 |
|---|---|---|---|---|
| asset_pair_name | string | 是 | 交易对名称 | BTC-USDT |
| side | string | 是 | 订单方向,可能的值为 ASK(卖)或 BID(买) | |
| price | string | 否 | 订单价格 | |
| amount | string | 是 | 数量必须大于 0 | |
| type | string | 是 | 订单类型,可能的值为 LIMIT(限价)、MARKET(交易对)、STOP_LIMIT(止损限价)、STOP_MARKET(止损市价),默认值为 LIMIT | |
| stop_price | string | 否 | 止损价格,仅适用于止损订单。BID 方向时,价格不得高于 stop_price 的 110%;ASK 方向时,价格不得低于 stop_price 的 90%。 | |
| operator | string | 否 | 操作符,可能的值为 GTE(大于等于)、LTE(小于等于),仅适用于止损订单 | |
| immediate_or_cancel | bool | 否 | 仅适用于 LIMIT 类型,必须为 false 当 post_only 为 true 时 | |
| post_only | bool | 否 | 仅适用于 LIMIT 类型,必须为 false 当 immediate_or_cancel 为 true 时 | |
| client_order_id | string | 否 | 必须匹配 ^[a-zA-Z0-9-_]{1,36}$ 正则表达式。client_order_id 在 24 小时内唯一。如果创建的订单已关闭且超过 24 小时,将被释放并可以重新使用 |
基于 type 的额外必填参数:
| 类型 | 额外必填参数 |
|---|---|
LIMIT | price |
STOP_LIMIT | price,stop_price,operator |
STOP_MARKET | stop_price,operator |
其他信息:
LIMIT,STOP_LIMIT,MARKET ASK,STOP_MARKET ASK订单使用amount字段指定用户想买卖的基础货币数量;amount的小数位数应小于或等于交易对的基础数量。MARKET BID,STOP_MARKET BID订单使用amount指定用户想用报价货币购买的数量;正确的数量将基于交易对流动性和amount决定;amount的小数位数应小于或等于交易对的报价数量。price的小数位数应小于交易对的报价小数位数。- 对于
LIMIT和STOP_LIMIT订单,price*amount应大于交易对的min_quote_value。 - 请求体应为 JSON 字符串,
Content-Type头应为application/json。
HTTP 请求示例(原始数据):
POST /api/v3/viewer/orders HTTP/1.1
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTAwMiwiaWRlbnRpdHkiOm51bGwsInR5cGUiOiJCYXNpYyIsImV4cCI6MTU1MDc0MDM1NCwiaWF0IjoxNTUwNDgxMTU0LCJpc3MiOiJCcm9rZXIiLCJuYmYiOjE1NTA0ODExNTMsInN1YiI6MTAwMn0.4cZZ7hFOyfbROr8EZ6-lu20W--T-P35iSOLMOQuqWp8
Host: b1.run
Connection: close
{"asset_pair_name":"BTC-USDT","side":"ASK","price":"10001","amount":"0.1", "type":"STOP_LIMIT", "stop_price":"10000", "operator":"GTE"}
响应为订单对象:
{
"id": 10,
"asset_pair_name": "EOS-BTC",
"price": "10.00",
"amount": "10.00",
"filled_amount": "9.0",
"avg_deal_price": "12.0",
"side": "ASK",
"state": "FILLED",
"type": "STOP_LIMIT",
"stop_price": "9.8",
"operator": "LTE",
"immediate_or_cancel": false,
"post_only": true,
"client_order_id": "",
"created_at":"2019-01-29T06:05:56Z",
"updated_at":"2019-01-29T06:05:56Z"
}
批量创建订单
POST /viewer/orders/multi
仅支持限价(Limit)或市价(Market)订单的批量创建,不支持止损(Stop)订单。 批量创建订单的数量限制:最多 10 个订单。
注意:如果在批量创建过程中发生错误,则所有订单创建失败。
请求参数
| 参数名称 | 类型 | 必填 | 描述 | 示例 |
|---|---|---|---|---|
| asset_pair_name | string | 是 | 交易对名称 | BTC-USDT |
| side | string | 是 | 订单方向,可能的值为 ASK(卖)或 BID(买) | |
| price | string | 否 | 订单价格 | |
| amount | string | 是 | 数量必须大于 0 | |
| type | string | 是 | 订单类型,可能的值为 LIMIT(限价)、MARKET(市价) | |
| immediate_or_cancel | bool | 否 | 仅适用于 LIMIT 类型,必须为 false 当 post_only 为 true 时 | |
| post_only | bool | 否 | 仅适用于 LIMIT 类型,必须为 false 当 immediate_or_cancel 为 true 时 | |
| client_order_id | string | 否 | 必须匹配 ^[a-zA-Z0-9-_]{1,36}$ 正则表达式。client_order_id 在 24 小时内唯一。如果创建的订单已关闭且超过 24 小时,将被释放并可以重新使用 |
请求体示例:
[{
"asset_pair_name": "EOS-BTC",
"price": "10.00",
"side": "ASK",
"amount": "1",
"type": "STOP_LIMIT",
"stop_price": "9.8",
"operator": "LTE",
"immediate_or_cancel": false,
"post_only": true,
}]
响应为订单数组:
[{
"id": 10,
"asset_pair_name": "EOS-BTC",
"price": "10.00",
"amount": "10.00",
"filled_amount": "9.0",
"avg_deal_price": "12.0",
"side": "ASK",
"state": "FILLED",
"type": "STOP_LIMIT",
"stop_price": "9.8",
"operator": "LTE",
"immediate_or_cancel": false,
"post_only": true,
"client_order_id": "",
"created_at":"2019-01-29T06:05:56Z",
"updated_at":"2019-01-29T06:05:56Z"
}]
取消订单
注意:当取消订单时,如果未在打开的订单中找到该订单,会返回
NotFound错误,错误码为:10013。
1. 通过路径中的 id 取消订单:
POST /viewer/orders/{id}/cancel
请求参数
| 参数名称 | 类型 | 必填 | 描述 | 示例 |
|---|---|---|---|---|
| id | number | 是 | 订单 ID |
2. 通过查询中的 id 或 client_order_id 取消订单:
POST /viewer/order/cancel
请求参数
| 参数名称 | 类型 | 必填 | 描述 | 示例 |
|---|---|---|---|---|
| order_id | string | 否 | 订单 ID | 10 |
| client_order_id | string | 否 | 客户订单 ID |
order_id 或 client_order_id 中至少提供一个。如果同时提供 order_id 和 client_order_id,优先使用 order_id。
响应为订单对象:
{
"id": 10,
"asset_pair_name": "EOS-BTC",
"price": "10.00",
"amount": "10.00",
"filled_amount": "9.0",
"avg_deal_price": "12.0",
"side": "ASK",
"state": "CANCELLED",
"type": "STOP_LIMIT",
"stop_price": "9.8",
"operator": "LTE",
"immediate_or_cancel": false,
"post_only": true,
"client_order_id": "",
"created_at":"2019-01-29T06:05:56Z",
"updated_at":"2019-01-29T06:05:56Z"
}
取消所有订单
POST /viewer/orders/cancel
请求参数
| 参数名称 | 类型 | 必填 | 描述 | 示例 |
|---|---|---|---|---|
| asset_pair_name | string | 是 | 交易对名称 | BTC-USDT |
响应示例:
{
"code":0,
"data": {
"cancelled":[
58272370,
58272377
],
"failed":[]
}
}