跳到主要内容

订单

API 权限范围

GET 请求需要 查看订单信息 权限,POST 请求需要 创建订单 权限。

订单(Order)

属性名称类型描述示例
idnumber订单的 ID
asset_pair_namestring交易对名称
pricestring订单价格
amountstring订单数量
filled_amountstring已完成的数量
avg_deal_pricestring成交的平均价格
sidestring订单方向,ASK(卖)或 BID(买)
statestring订单状态,可能的值为 FILLED(已完成)、PENDING(待处理)、CANCELLED(已取消)、FIRED(已启动)、REJECTED(已拒绝)
created_atstring创建时间
updated_atstring更新时间
typestring订单类型,可能的值为 LIMIT(限价)、MARKET(交易对)、STOP_LIMIT(止损限价)、STOP_MARKET(止损市价)
stop_pricestring止损价格,仅适用于止损订单
operatorstring操作符,可能的值为 GTE(大于等于)、LTE(小于等于)
immediate_or_cancelbool仅适用于 LIMIT 类型,指示是否立即成交或取消
post_onlybool仅适用于 LIMIT 类型,指示是否仅限于发布单(即不成交则取消)
client_order_idstring客户订单 ID,由客户自定义用于标识订单,必须匹配 ^[a-zA-Z0-9-_]{1,36}$ 正则表达式

获取单个交易对的用户订单

GET /viewer/orders

请求参数

参数名称类型必填描述示例
asset_pair_namestring交易对名称BTC-USDT
page_tokenstring请求此页后续数据的页标识
sidestring订单方向,可能的值为 ASK(卖)或 BID(买)
statestring订单状态,可能的值为 PENDING(待处理)、OPENING(开盘)、CLOSED(关闭)、NONE_FILLED(未完全成交)、ALL(所有)。默认值为 PENDINGCLOSED 表示已完成和已取消的订单,OPENINGPENDING 表示已启动和待处理的订单;NONE_FILLED 用于查询已关闭且未成交的订单。
limitstring默认值为 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}

请求参数

参数名称类型必填描述示例
idstring订单 ID10

2. 通过查询获取订单 idclient_order_id

GET /viewer/order

请求参数

参数名称类型必填描述示例
order_idstring订单 ID10
client_order_idstring客户订单 ID

order_idclient_order_id 中至少需要提供一个。如果同时提供 order_idclient_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_namestring交易对名称BTC-USDT
sidestring订单方向,可能的值为 ASK(卖)或 BID(买)
pricestring订单价格
amountstring数量必须大于 0
typestring订单类型,可能的值为 LIMIT(限价)、MARKET(交易对)、STOP_LIMIT(止损限价)、STOP_MARKET(止损市价),默认值为 LIMIT
stop_pricestring止损价格,仅适用于止损订单。BID 方向时,价格不得高于 stop_price 的 110%;ASK 方向时,价格不得低于 stop_price 的 90%。
operatorstring操作符,可能的值为 GTE(大于等于)、LTE(小于等于),仅适用于止损订单
immediate_or_cancelbool仅适用于 LIMIT 类型,必须为 falsepost_onlytrue
post_onlybool仅适用于 LIMIT 类型,必须为 falseimmediate_or_canceltrue
client_order_idstring必须匹配 ^[a-zA-Z0-9-_]{1,36}$ 正则表达式。client_order_id 在 24 小时内唯一。如果创建的订单已关闭且超过 24 小时,将被释放并可以重新使用

基于 type 的额外必填参数:

类型额外必填参数
LIMITprice
STOP_LIMITpricestop_priceoperator
STOP_MARKETstop_priceoperator

其他信息:

  • LIMITSTOP_LIMITMARKET ASKSTOP_MARKET ASK 订单使用 amount 字段指定用户想买卖的基础货币数量;amount 的小数位数应小于或等于交易对的基础数量。
  • MARKET BIDSTOP_MARKET BID 订单使用 amount 指定用户想用报价货币购买的数量;正确的数量将基于交易对流动性和 amount 决定;amount 的小数位数应小于或等于交易对的报价数量。
  • price 的小数位数应小于交易对的报价小数位数。
  • 对于 LIMITSTOP_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_namestring交易对名称BTC-USDT
sidestring订单方向,可能的值为 ASK(卖)或 BID(买)
pricestring订单价格
amountstring数量必须大于 0
typestring订单类型,可能的值为 LIMIT(限价)、MARKET(市价)
immediate_or_cancelbool仅适用于 LIMIT 类型,必须为 falsepost_onlytrue
post_onlybool仅适用于 LIMIT 类型,必须为 falseimmediate_or_canceltrue
client_order_idstring必须匹配 ^[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

请求参数

参数名称类型必填描述示例
idnumber订单 ID

2. 通过查询中的 idclient_order_id 取消订单:

POST /viewer/order/cancel

请求参数

参数名称类型必填描述示例
order_idstring订单 ID10
client_order_idstring客户订单 ID

order_idclient_order_id 中至少提供一个。如果同时提供 order_idclient_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_namestring交易对名称BTC-USDT

响应示例:

{
"code":0,
"data": {
"cancelled":[
58272370,
58272377
],
"failed":[]
}
}