订单
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":[]
}
}