REST行情与交易接口 (2024-04-02)
#
API 基本信息- 本篇列出接口的 base URL 有:
- 上述列表的最后4个接口 (
api1
-api4
) 可能会提供更好的性能,但其稳定性略为逊色。因此,请务必使用最适合的URL。 - 所有接口的响应都是 JSON 格式。
- 响应中如有数组,数组元素以时间升序排列,越早的数据越提前。
- 所有时间、时间戳均为UNIX时间,单位为毫秒。
- 对于仅发送公开市场数据的 API,您可以使用接口的 base URL https://data-api.binance.vision 。请参考 Market Data Only_CN 页面。
#
HTTP 返回代码- HTTP
4XX
错误码用于指示错误的请求内容、行为、格式。问题在于请求者。 - HTTP
403
错误码表示违反WAF限制(Web应用程序防火墙)。 - HTTP
409
错误码表示重新下单(cancelReplace)的请求部分成功。(比如取消订单失败,但是下单成功了) - HTTP
429
错误码表示警告访问频次超限,即将被封IP。 - HTTP
418
表示收到429后继续访问,于是被封了。 - HTTP
5XX
错误码用于指示Binance服务侧的问题。
#
接口错误代码- 每个接口都有可能抛出异常,异常响应格式如下:
- 具体的错误码及其解释在错误代码汇总
#
接口的基本信息GET
方法的接口, 参数必须在query string
中发送。POST
,PUT
, 和DELETE
方法的接口,参数可以在内容形式为application/x-www-form-urlencoded
的query string
中发送,也可以在request body
中发送。 如果你喜欢,也可以混合这两种方式发送参数。- 对参数的顺序不做要求。
- 但如果同一个参数名在
query string
和request body
中都有,query string
中的会被优先采用。
访问限制
#
访问限制基本信息- 以下是
intervalLetter
作为头部值:- SECOND => S
- MINUTE => M
- HOUR => H
- DAY => D
- 在
/api/v3/exchangeInfo
接口中rateLimits
数组里包含有REST接口(不限于本篇的REST接口)的访问限制。包括带权重的访问频次限制、下单速率限制。本篇枚举定义
章节有限制类型的进一步说明。 - 违反任何一个速率限制时(访问频次限制或下单速率限制),将返回429。
#
IP 访问限制- 每个请求将包含一个
X-MBX-USED-WEIGHT-(intervalNum)(intervalLetter)
的头,其中包含当前IP所有请求的已使用权重。 - 每一个接口均有一个相应的权重(weight),有的接口根据参数不同可能拥有不同的权重。越消耗资源的接口权重就会越大。
- 收到429时,您有责任停止发送请求,不得滥用API。
- 收到429后仍然继续违反访问限制,会被封禁IP,并收到418错误码
- 频繁违反限制,封禁时间会逐渐延长,从最短2分钟到最长3天.
Retry-After
的头会与带有418或429的响应发送,并且会给出以秒为单位的等待时长(如果是429)以防止禁令,或者如果是418,直到禁令结束。- 访问限制是基于IP的,而不是API Key
#
下单频率限制- 每个成功的下单回报将包含一个
X-MBX-ORDER-COUNT-(intervalNum)(intervalLetter)
的头,其中包含当前账户已用的下单限制数量。 - 当下单数超过限制时,会收到带有429但不含
Retry-After
头的响应。请检查GET api/v3/exchangeInfo
的下单频率限制 (rateLimitType = ORDERS) 并等待封禁时间结束。 - 被拒绝或不成功的下单并不保证回报中包含以上头内容。
- 下单频率限制是基于每个账户计数的。
- 用户可以通过接口
GET api/v3/rateLimit/order
来查询当前的下单量.
数据来源
- 因为API系统是异步的, 所以返回的数据有延时很正常, 也在预期之中。
- 在每个接口中,都列出了其数据的来源,可以用于理解数据的时效性。
系统一共有3个数据来源,按照更新速度的先后排序。排在前面的数据最新,在后面就有可能存在延迟。
- 撮合引擎 - 表示数据来源于撮合引擎
- 缓存 - 表示数据来源于内部或者外部的缓存
- 数据库 - 表示数据直接来源于数据库
有些接口有不止一个数据源, 比如 缓存 => 数据库
, 这表示接口会先从第一个数据源检查,如果没有数据,则检查下一个数据源。
接口鉴权类型
- 每个接口都有自己的鉴权类型,鉴权类型决定了访问时应当进行何种鉴权。
- 鉴权类型会在本文档中各个接口名称旁声明,如果没有特殊声明即默认为
NONE
。 - 如果需要 API-keys,应当在HTTP头中以
X-MBX-APIKEY
字段传递。 - API-keys 与 secret-keys 是大小写敏感的。
- API-keys可以被配置为只拥有访问一些接口的权限。
例如, 一个 API-key 仅可用于发送交易指令, 而另一个 API-key 则可访问除交易指令外的所有路径。 - 默认 API-keys 可访问所有鉴权路径.
鉴权类型 | 描述 |
---|---|
NONE | 不需要鉴权的接口 |
TRADE | 需要有效的API-KEY和签名 |
USER_DATA | 需要有效的API-KEY和签名 |
USER_STREAM | 需要有效的API-KEY |
MARKET_DATA | 需要有效的API-KEY |
TRADE
和USER_DATA
接口是 签名(SIGNED)接口.
需要签名的接口 (TRADE 与 USER_DATA)
- 调用
SIGNED
接口时,除了接口本身所需的参数外,还需要在query string
或request body
中传递signature
, 即签名参数。 签名
大小写不敏感.- 请参考下面 签名示例 以了解具体如何做计算签名。
#
时间同步安全签名接口均需要传递
timestamp
参数,其值应当是请求发送时刻的unix时间戳(毫秒)。服务器收到请求时会判断请求中的时间戳,如果是5000毫秒之前发出的,则请求会被认为无效。这个时间空窗值可以通过发送可选参数
recvWindow
来定义。逻辑伪代码:
关于交易时效性
互联网状况并不100%可靠,不可完全依赖,因此你的程序本地到币安服务器的时延会有抖动.
这是我们设置recvWindow
的目的所在,如果你从事高频交易,对交易时效性有较高的要求,可以灵活设置recvWindow
以达到你的要求。
不推荐使用5秒以上的recvWindow。最大值不能超过60秒!
#
POST /api/v3/order 的示例#
HMAC Keys以下是在linux bash环境下使用 echo
,openssl
和curl
工具实现的一个调用接口下单的示例
apikey、secret仅供示范
Key | Value |
---|---|
apiKey | vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A |
secretKey | NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j |
参数 | 取值 |
---|---|
symbol | LTCBTC |
side | BUY |
type | LIMIT |
timeInForce | GTC |
quantity | 1 |
price | 0.1 |
recvWindow | 5000 |
timestamp | 1499827319559 |
#
示例 1: 所有参数通过 query string 发送queryString: symbol=LTCBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=1&price=0.1&recvWindow=5000×tamp=1499827319559
HMAC SHA256 签名:
curl 调用:
#
示例 2: 所有参数通过 request body 发送requestBody: symbol=LTCBTC&side=BUY&type=LIMIT&timeInForce=GTC&quantity=1&price=0.1&recvWindow=5000×tamp=1499827319559
HMAC SHA256 签名:
curl 调用:
#
示例 3: 混合使用 query string 与 request bodyqueryString: symbol=LTCBTC&side=BUY&type=LIMIT&timeInForce=GTC
requestBody: quantity=1&price=0.1&recvWindow=5000×tamp=1499827319559
HMAC SHA256 签名:
curl 调用:
Note that the signature is different in example 3. There is no & between "GTC" and "quantity=1".
#
RSA Keys- 这将逐步介绍如何通过有效的签名发送 payload。
- 我们接受
PKCS#8
格式的RSA密钥。 - 要获取 API Key,您需要在您的账户上上传您的 RSA Public Key。
- 对于这个例子,Private Key 将被引用为
test-prv-key.pem
。
Key | Value |
---|---|
apiKey | CAvIjXy3F44yW6Pou5k8Dy1swsYDWJZLeoK2r8G4cFDnE9nosRppc2eKc1T8TRTQ |
参数 | 取值 |
---|---|
symbol | BTCUSDT |
side | SELL |
type | LIMIT |
timeInForce | GTC |
quantity | 1 |
price | 0.2 |
timestamp | 1668481559918 |
recvWindow | 5000 |
第一步: Payload
将参数列表排列成一个 string。 用 &
分隔每个参数。对于上述参数,签名 payload 如下所示:
第二步: 计算签名
- 将签名有效负载编码为 ASCII 数据。
- 使用带有 SHA-256 hash 函数的 RSASSA-PKCS1-v1_5 算法对 payload 进行签名。
- 将输出编码为 base64 string。
- 由于签名可能包含
/
和=
,这可能会导致发送请求时出现问题。 所以签名必须是 URL 编码的。
- curl 命令:
下面的示例 Bash 脚本执行上述类似的步骤:
#
Ed25519 Keys我们建议使用 Ed25519 API keys,因为它在所有受支持的 API key 类型中提供最佳性能和安全性。
参数 | 取值 |
---|---|
symbol | BTCUSDT |
side | SELL |
type | LIMIT |
timeInForce | GTC |
quantity | 1 |
price | 0.2 |
timestamp | 1668481559918 |
下面的 Python 示例代码能说明如何使用 Ed25519 key 对 payload 进行签名。
公开API接口
#
术语解释这里的术语适用于全部文档,建议特别是新手熟读,也便于理解。
base asset
指一个交易对的交易对象,即写在靠前部分的资产名, 比如BTCUSDT
,BTC
是base asset
。quote asset
指一个交易对的定价资产,即写在靠后部分的资产名, 比如BTCUSDT
,USDT
是quote asset
。
#
枚举定义交易对状态 (status):
PRE_TRADING
盘前交易TRADING
正常交易中POST_TRADING
盘后交易END_OF_DAY
收盘HALT
交易终止(该交易对已下线)AUCTION_MATCH
集合竞价BREAK
交易暂停
账户与交易对权限(权限):
SPOT
现货MARGIN
杠杆LEVERAGED
杠杆代币TRD_GRP_002
交易组 002TRD_GRP_003
交易组 003TRD_GRP_004
交易组 004TRD_GRP_005
交易组 005TRD_GRP_006
交易组 006TRD_GRP_007
交易组 007TRD_GRP_008
交易组 008TRD_GRP_009
交易组 009TRD_GRP_010
交易组 010TRD_GRP_011
交易组 011TRD_GRP_012
交易组 012TRD_GRP_013
交易组 013TRD_GRP_014
交易组 014TRD_GRP_015
交易组 015TRD_GRP_016
交易组 016TRD_GRP_017
交易组 017TRD_GRP_018
交易组 018TRD_GRP_019
交易组 019TRD_GRP_020
交易组 020TRD_GRP_021
交易组 021TRD_GRP_022
交易组 022TRD_GRP_023
交易组 023TRD_GRP_024
交易组 024TRD_GRP_025
交易组 025
订单状态 (status):
状态 | 描述 |
---|---|
NEW | 订单被交易引擎接受 |
PARTIALLY_FILLED | 部分订单被成交 |
FILLED | 订单完全成交 |
CANCELED | 用户撤销了订单 |
PENDING_CANCEL | 撤销中(目前并未使用) |
REJECTED | 订单没有被交易引擎接受,也没被处理 |
EXPIRED | 订单被交易引擎取消, 比如 LIMIT FOK 订单没有成交 市价单没有完全成交 强平期间被取消的订单 交易所维护期间被取消的订单 |
EXPIRED_IN_MATCH | 表示订单由于 STP 而过期 (e.g. 带有 EXPIRE_TAKER 的订单与订单簿上属于同账户或同 tradeGroupId 的订单撮合) |
OCO 状态 (状态类型集 listStatusType):
状态 | 描述 |
---|---|
RESPONSE | 当ListStatus响应失败的操作时使用。 (订单完成或取消订单) |
EXEC_STARTED | 当已经下单或者订单有更新时 |
ALL_DONE | 当订单执行结束或者不在激活状态 |
OCO 订单状态 (订单状态集 listOrderStatus):
状态 | 描述 |
---|---|
EXECUTING | 当已经下单或者订单有更新时 |
ALL_DONE | 当订单执行结束或者不在激活状态 |
REJECT | 当订单状态响应失败(订单完成或取消订单) |
指定订单的类型
OCO
选择性委托订单
分配类型 (allocationtype, type):
SOR
智能订单路由
订单种类 (orderTypes, type):
LIMIT
限价单MARKET
市价单STOP_LOSS
止损单STOP_LOSS_LIMIT
限价止损单TAKE_PROFIT
止盈单TAKE_PROFIT_LIMIT
限价止盈单LIMIT_MAKER
限价做市单
订单返回类型 (newOrderRespType):
ACK
RESULT
FULL
工作平台
EXCHANGE
- 常规交易SOR
- 智能订单路由
订单方向 (side):
BUY
- 买入SELL
- 卖出
Time in force (timeInForce):
这里定义了订单多久能够失效
Status | Description |
---|---|
GTC | 成交为止 订单会一直有效,直到被成交或者取消。 |
IOC | 无法立即成交的部分就撤销 订单在失效前会尽量多的成交。 |
FOK | 无法全部立即成交就撤销 如果无法全部成交,订单会失效。 |
K线间隔 (interval):
s -> 秒; m -> 分钟; h -> 小时; d -> 天; w -> 周; M -> 月
- 1s
- 1m
- 3m
- 5m
- 15m
- 30m
- 1h
- 2h
- 4h
- 6h
- 8h
- 12h
- 1d
- 3d
- 1w
- 1M
限制种类 (rateLimitType):
- REQUESTS_WEIGHT - 单位时间请求权重之和上限
- ORDERS - 单位时间下单(撤单)次数上限
- RAW_REQUESTS - 单位时间请求次数上限
限制间隔 (interval):
- SECOND
- MINUTE
- DAY
#
通用接口#
测试服务器连通性 PING测试能否联通
权重: 1
参数: NONE
数据源: 缓存
响应:
#
获取服务器时间获取服务器时间
权重: 1
参数: NONE
数据源: 缓存
响应:
#
交易规范信息获取此时的交易规范信息
权重: 20
参数:
有四种用法
用法 | 举例 |
---|---|
不需要交易对 | curl -X GET "https://api.binance.com/api/v3/exchangeInfo" |
单个交易对 | curl -X GET "https://api.binance.com/api/v3/exchangeInfo?symbol=BNBBTC" |
多个交易对 | curl -X GET "https://api.binance.com/api/v3/exchangeInfo?symbols=%5B%22BNBBTC%22,%22BTCUSDT%22%5D" 或者 curl -g -X GET 'https://api.binance.com/api/v3/exchangeInfo?symbols=["BTCUSDT","BNBBTC"]' |
交易权限 | curl -X GET "https://api.binance.com/api/v3/exchangeInfo?permissions=SPOT" 或者 curl -X GET "https://api.binance.com/api/v3/exchangeInfo?permissions=%5B%22MARGIN%22%2C%22LEVERAGED%22%5D" 或者 curl -g -X GET 'https://api.binance.com/api/v3/exchangeInfo?permissions=["MARGIN","LEVERAGED"]' |
备注:
- 如果参数
symbol
或者symbols
提供的交易对不存在, 系统会返回错误并提示交易对不正确. - 所有的参数都是可选的.
permissions
支持单个或者多个值, 比如SPOT
,["MARGIN","LEVERAGED"]
.- 如果
permissions
值没有提供, 其默认值为["SPOT","MARGIN","LEVERAGED"]
.- 如果想显示所有交易权限,需要分别指定(比如,
["SPOT","MARGIN",...]
). 从 账户与交易对权限 查看交易权限列表.
- 如果想显示所有交易权限,需要分别指定(比如,
permissionSets
:#
解释响应中的 [["A","B"]]
- 有权限"A"或权限"B"的账户可以下订单。[["A"],["B"]]
- 有权限"A"和权限"B"的账户可以下订单。[["A"],["B","C"]]
- 有权限"A"和权限"B"或权限"C"的账户可以下订单。(此处应用的是包含或,而不是排除或,因此账户可以同时拥有权限"B"和权限"C"。)
数据源: 缓存
响应:
#
行情接口#
深度信息权重:
限制 | 权重 |
---|---|
1-100 | 5 |
101-500 | 25 |
501-1000 | 50 |
1001-5000 | 250 |
参数:
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
symbol | STRING | YES | |
limit | INT | NO | 默认 100; 最大 5000. 可选值:[5, 10, 20, 50, 100, 500, 1000, 5000] 如果 limit > 5000, 最多返回5000条数据. |
注意: limit=0 返回全部orderbook,但数据量会非常非常非常非常大!
数据源: 缓存
响应:
#
近期成交获取近期成交
权重: 25
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | |
limit | INT | NO | Default 500; max 1000. |
数据源: 缓存
响应:
#
查询历史成交权重: 25
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | |
limit | INT | NO | Default 500; max 1000. |
fromId | LONG | NO | 从哪一条成交id开始返回. 缺省返回最近的成交记录 |
数据源: 数据库
响应:
#
近期成交(归集)与trades的区别是,同一个taker在同一时间同一价格与多个maker的成交会被合并为一条记录
权重: 2
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | |
fromId | LONG | NO | 从包含fromID的成交开始返回结果 |
startTime | LONG | NO | 从该时刻之后的成交记录开始返回结果 |
endTime | LONG | NO | 返回该时刻为止的成交记录 |
limit | INT | NO | 默认 500; 最大 1000. |
- 如果没有发送任何筛选参数(fromId, startTime, endTime),默认返回最近的成交记录
数据源: 数据库
响应:
#
K线数据每根K线的开盘时间可视为唯一ID
权重: 2
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | |
interval | ENUM | YES | 详见枚举定义:K线间隔 |
startTime | LONG | NO | |
endTime | LONG | NO | |
timeZone | STRING | NO | 默认: 0 (UTC) |
limit | INT | NO | Default 500; max 1000. |
- 如果未发送
startTime
和endTime
,将返回最近的K线数据。 timeZone
支持的值包括:- 小时和分钟(例如
-1:00
,05:45
) - 仅小时(例如
0
,8
,4
) - 接受的值范围严格为 [-12:00 到 +14:00](包括边界)
- 小时和分钟(例如
- 如果提供了
timeZone
,K线间隔将在该时区中解释,而不是在UTC中。 - 请注意,无论
timeZone
如何,startTime
和endTime
始终以UTC时区解释。
数据源: 数据库
响应:
#
UIK线数据请求参数与响应和k线接口相同。
uiKlines
返回修改后的k线数据,针对k线图的呈现进行了优化。
权重: 2
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | |
interval | ENUM | YES | |
startTime | LONG | NO | |
endTime | LONG | NO | |
timeZone | STRING | NO | Default: 0 (UTC) |
limit | INT | NO | 默认 500; 最大 1000. |
- 如果未发送
startTime
和endTime
,默认返回最近的交易。 timeZone
支持的值包括:- 小时和分钟(例如
-1:00
,05:45
) - 仅小时(例如
0
,8
,4
) - 接受的值范围严格为 [-12:00 到 +14:00](包括边界)
- 小时和分钟(例如
- 如果提供了
timeZone
,K线间隔将在该时区中解释,而不是在UTC中。 - 请注意,无论
timeZone
如何,startTime
和endTime
始终以UTC时区解释。
数据源: 数据库
响应:
#
当前平均价格权重: 2
参数: 名称 | 类型 | 是否必需 | 描述 ------------ | ------------ | ------------ | ------------ symbol | STRING | YES |
数据源: 缓存
响应:
#
24hr价格变动情况请注意,不携带symbol参数会返回全部交易对数据,不仅数据庞大,而且权重极高
权重:
参数 | 提供Symbol数量 | 权重 |
---|---|---|
symbol | 1 | 2 |
不提供symbol | 80 | |
symbols | 1-20 | 2 |
21-100 | 40 | |
>= 101 | 80 | |
不提供symbol | 80 |
参数:
名称 | 类型 | 是否强制要求 | 详情 |
---|---|---|---|
symbol | STRING | NO | 参数 `symbol` 和 `symbols` 不可以一起使用 如果都不提供, 所有symbol的ticker数据都会返回. symbols参数可接受的格式: ["BTCUSDT","BNBUSDT"] 或 %5B%22BTCUSDT%22,%22BNBUSDT%22%5D |
symbols | STRING | NO | |
type | ENUM | NO | 可接受的参数: FULL or MINI. 如果不提供, 默认值为 FULL |
数据源: 缓存
响应 - FULL:
OR
响应 - MINI
OR
#
交易日行情(Ticker)交易日价格变动统计。
权重:
每个交易对占用4个权重.
当请求中的交易对数量超过50,此请求的权重将限制在200。
参数:
参数名 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | symbol 或者 symbols 必须提供之一 symbols 可以接受的格式: ["BTCUSDT","BNBUSDT"] 或者 %5B%22BTCUSDT%22,%22BNBUSDT%22%5D symbols 最多可以发送100个. |
symbols | |||
timeZone | STRING | NO | Default: 0 (UTC) |
type | ENUM | NO | 可接受值: FULL or MINI. 默认值: FULL |
注意:
timeZone
支持的值包括:- 小时和分钟(例如
-1:00
,05:45
) - 仅小时(例如
0
,8
,4
)
- 小时和分钟(例如
数据源: 数据库
响应 - FULL
有 symbol
:
有 symbols
:
响应: - MINI
有 symbol
:
有 symbols
:
#
最新价格接口返回最近价格
权重:
参数 | Symbols数量 | 权重 |
---|---|---|
symbol | 1 | 2 |
不提供symbol | 4 | |
symbols | 不限 | 4 |
参数:
参数名 | 类型 | 是否强制 | 详情 |
---|---|---|---|
symbol | STRING | NO | 参数 `symbol` 和 `symbols` 不可以一起使用 如果都不提供, 所有symbol的价格数据都会返回. symbols参数可接受的格式: ["BTCUSDT","BNBUSDT"] 或 %5B%22BTCUSDT%22,%22BNBUSDT%22%5D |
symbols | STRING | NO |
- 不发送交易对参数,则会返回所有交易对信息
数据源: 缓存
响应:
OR
#
最优挂单接口返回当前最优的挂单(最高买单,最低卖单)
权重:
参数 | Symbols数量 | 权重 |
---|---|---|
symbol | 1 | 2 |
不提供symbol | 4 | |
symbols | 不限 | 4 |
参数:
参数名 | 类型 | 是否强制 | 详情 |
---|---|---|---|
symbol | STRING | NO | 参数 `symbol` 和 `symbols` 不可以一起使用 如果都不提供, 所有symbol的bookTicker数据都会返回. symbols参数可接受的格式: ["BTCUSDT","BNBUSDT"] 或 %5B%22BTCUSDT%22,%22BNBUSDT%22%5D |
symbols | STRING | NO |
- 不发送交易对参数,则会返回所有交易对信息
数据源: 缓存
响应:
OR
#
滚动窗口价格变动统计注意: 此接口和 GET /api/v3/ticker/24hr
有所不同.
此接口统计的时间范围比请求的windowSize
多不超过59999ms.
接口的 openTime
是某一分钟的起始,而结束是当前的时间. 所以实际的统计区间会比请求的时间窗口多不超过59999ms.
比如, 结束时间 closeTime
是 1641287867099 (January 04, 2022 09:17:47:099 UTC) , windowSize
为 1d
. 那么开始时间 openTime
则为 1641201420000 (January 3, 2022, 09:17:00 UTC)
权重: 4/交易对.
如果symbols
请求的交易对超过50, 上限是200.
参数
Name | Type | Mandatory | Description |
---|---|---|---|
symbol | STRING | YES | 提供 symbol或者symbols 其中之一 symbols 可以传入的格式: ["BTCUSDT","BNBUSDT"] or %5B%22BTCUSDT%22,%22BNBUSDT%22%5D symbols 允许最多100个交易对 |
symbols | |||
windowSize | ENUM | NO | 默认为 1d windowSize 支持的值: 如果是分钟: 1m,2m....59m 如果是小时: 1h, 2h....23h 如果是天: 1d...7d 不可以组合使用, 比如1d2h |
type | ENUM | NO | 可接受的参数: FULL or MINI. 如果不提供, 默认值为 FULL |
数据源: 数据库
响应 - FULL
使用参数 symbol
返回:
使用参数 symbols
返回:
响应 - MINI
使用参数 symbol
返回:
使用参数 symbols
返回:
#
账户接口#
下单 (TRADE)权重: 1
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | |
side | ENUM | YES | 详见枚举定义:订单方向 |
type | ENUM | YES | 详见枚举定义:订单种类 |
timeInForce | ENUM | NO | 详见枚举定义:Time in force |
quantity | DECIMAL | NO | |
quoteOrderQty | DECIMAL | NO | |
price | DECIMAL | NO | |
newClientOrderId | STRING | NO | 用户自定义的orderid,如空缺系统会自动赋值。 |
strategyId | INT | NO | |
strategyType | INT | NO | 不能低于 1000000 . |
stopPrice | DECIMAL | NO | 仅 STOP_LOSS , STOP_LOSS_LIMIT , TAKE_PROFIT , TAKE_PROFIT_LIMIT 需要此参数。 |
trailingDelta | LONG | NO | 用于 STOP_LOSS , STOP_LOSS_LIMIT , TAKE_PROFIT , 和 TAKE_PROFIT_LIMIT 类型的订单。 |
icebergQty | DECIMAL | NO | 仅有限价单(包括条件限价单与限价做事单)可以使用该参数,含义为创建冰山订单并指定冰山订单的数量。 |
newOrderRespType | ENUM | NO | 指定响应类型 ACK , RESULT , or FULL ; MARKET 与 LIMIT 订单默认为FULL , 其他默认为ACK 。 |
selfTradePreventionMode | ENUM | NO | 允许的 ENUM 取决于交易对的配置。支持的值有 EXPIRE_TAKER ,EXPIRE_MAKER ,EXPIRE_BOTH ,NONE 。 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
根据 order type
的不同,某些参数强制要求,具体如下:
Type | 强制要求的参数 | 其他信息 |
---|---|---|
LIMIT | timeInForce , quantity , price | |
MARKET | quantity | 市价买卖单可用quantity 参数来设置base asset 数量.例如:BTCUSDT 市价单,BTC 买卖数量取决于 quantity 参数. 市价买卖单可用 quoteOrderQty 参数来设置quote asset 数量. 正确的quantity 取决于市场的流动性与quoteOrderQty 例如: 市价 BUY BTCUSDT,单子会基于quoteOrderQty - USDT 的数量,购买 BTC.市价 SELL BTCUSDT,单子会卖出 BTC 来满足quoteOrderQty - USDT 的数量. |
STOP_LOSS | quantity , stopPrice , trailingDelta | 条件满足后会下MARKET 单子. (例如:达到stopPrice 或trailingDelta 被启动) |
STOP_LOSS_LIMIT | timeInForce , quantity , price , stopPrice , trailingDelta | |
TAKE_PROFIT | quantity , stopPrice , trailingDelta | 条件满足后会下MARKET 单子. (例如:达到stopPrice 或trailingDelta 被启动) |
TAKE_PROFIT_LIMIT | timeInForce , quantity , price , stopPrice , trailingDelta | |
LIMIT_MAKER | quantity , price | 订单大部分情况下与普通的限价单没有区别,但是如果在当前价格会立即吃对手单并成交则下单会被拒绝。因此使用这个订单类型可以保证订单一定是挂单方,不会成为吃单方。 |
其他:
- 任何
LIMIT
或LIMIT_MAKER
只要填icebergQty
参数都可以下冰上订单。 - 冰山订单的
timeInForce
必须设置为GTC
。 STOP_LOSS
,STOP_LOSS_LIMIT
,TAKE_PROFIT_LIMIT
与TAKE_PROFIT
单子都能同时填上trailingDelta
与stopPrice
。- 填上
quoteOrderQty
的市价单不会触犯过滤器的LOT_SIZE
限制。订单的quantity
会尽量满足quoteOrderQty
的数量。
条件单的触发价格必须:
- 比下单时当前市价高:
STOP_LOSS
BUY
,TAKE_PROFIT
SELL
- 比下单时当前市价低:
STOP_LOSS
SELL
,TAKE_PROFIT
BUY
关于 newOrderRespType的三种选择
数据源: 撮合引擎
Response ACK: 返回速度最快,不包含成交信息,信息量最少
Response RESULT: 返回速度居中,返回吃单成交的少量信息
Response FULL: 返回速度最慢,返回吃单成交的详细信息
#
订单响应中的特定条件时才会出现的字段订单响应中的有一些字段仅在满足特定条件时才会出现。这些订单响应可以来自下订单,查询订单或取消订单,并且可以包括 OCO 订单类型。 下面列出了这些字段:
名称 | 描述 | 显示的条件 | 示例 |
---|---|---|---|
icebergQty | 冰山订单的数量。 | 只有在请求中发送 icebergQty 参数时才会出现。 | "icebergQty": "0.00000000" |
preventedMatchId | 与 symbol 结合使用时,可用于查询因为 STP 导致订单失效的过期订单。 | 只有在因为 STP 导致订单失效时可见。 | "preventedMatchId": 0 |
preventedQuantity | 因为 STP 导致订单失效的数量。 | 只有在因为 STP 导致订单失效时可见。 | "preventedQuantity": "1.200000" |
stopPrice | 用于设置逻辑订单中的触发价。 | STOP_LOSS ,TAKE_PROFIT ,STOP_LOSS_LIMIT 和 TAKE_PROFIT_LIMIT 订单时可见。 | "stopPrice": "23500.00000000" |
strategyId | 策略单ID; 用以关联此订单对应的交易策略。 | 如果在请求中添加了参数,则会出现。 | "strategyId": 37463720 |
strategyType | 策略单类型; 用以显示此订单对应的交易策略。 | 如果在请求中添加了参数,则会出现。 | "strategyType": 1000000 |
trailingDelta | 用以定义追踪止盈止损订单被触发的价格差。 | 出现在追踪止损订单中。 | "trailingDelta": 10 |
trailingTime | 追踪单被激活和跟踪价格变化的时间。 | 出现在追踪止损订单中。 | "trailingTime": -1 |
usedSor | 用于确定订单是否使用SOR的字段 | 在使用SOR下单时出现 | "usedSor": true | |
workingFloor | 用以定义订单是通过 SOR 还是由订单提交到的订单薄(order book)成交的。 | 出现在使用了 SOR 的订单中。 | "workingFloor": "SOR" |
#
测试下单接口 (TRADE)用于测试订单请求,但不会提交到撮合引擎
权重:
条件 | 权重 |
---|---|
没有 computeCommissionRates | 1 |
有 computeCommissionRates | 20 |
参数:
除了 POST /api/v3/order
所有参数,
下面参数也支持:
参数名 | 类型 | 是否必需 | 描述 |
---|---|---|---|
computeCommissionRates | BOOLEAN | NO | 默认值: false |
数据源: 缓存
响应:
没有 computeCommissionRates
有 computeCommissionRates
#
查询订单 (USER_DATA)查询订单状态
权重: 4
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | |
orderId | LONG | NO | |
origClientOrderId | STRING | NO | |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
注意:
- 至少需要发送
orderId
与origClientOrderId
中的一个 - 某些订单中
cummulativeQuoteQty
<0,是由于这些订单是cummulativeQuoteQty功能上线之前的订单。
数据源: 缓存 => 数据库
响应:
注意: 上面的 payload 没有显示所有可以出现的字段,更多请看 "订单响应中的特定条件时才会出现的字段" 部分。
#
撤销订单 (TRADE)权重: 1
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | |
orderId | LONG | NO | |
origClientOrderId | STRING | NO | |
newClientOrderId | STRING | NO | 用户自定义的本次撤销操作的ID(注意不是被撤销的订单的自定义ID)。如无指定会自动赋值。 |
cancelRestrictions | ENUM | NO | 支持的值: ONLY_NEW - 如果订单状态为 NEW ,撤销将成功。ONLY_PARTIALLY_FILLED - 如果订单状态为 PARTIALLY_FILLED ,撤销将成功。 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
orderId
与origClientOrderId
必须至少发送一个.- 如果两个参数一起发送,
orderId
优先被考虑.
数据源: 撮合引擎
响应:
注意: 上面的 payload 没有显示所有可以出现的字段,更多请看 "订单响应中的特定条件时才会出现的字段" 部分。
cancelRestrictions
#
关于 - 如果
cancelRestrictions
值不是任何受支持的值,则错误将是:
- 如果订单没有通过
cancelRestrictions
的条件,错误将是:
#
撤销单一交易对的所有挂单 (TRADE)撤销单一交易对下所有挂单, 包括OCO的挂单。
权重: 1
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | |
recvWindow | LONG | NO | 不能大于 60000 |
timestamp | LONG | YES |
数据源: 撮合引擎
响应
#
撤消挂单再下单 (TRADE)撤消挂单并在同个交易对上重新下单。
在撤消订单和下单前会判断: 1) 过滤器参数, 以及 2) 目前下单数量。
即使请求中没有尝试发送新订单,比如(newOrderResult: NOT_ATTEMPTED
),下单的数量仍然会加1。
权重: 1
参数:
名称 | 类型 | 是否必需 | 描述
------------ | ------------ | ------------ | ------------
symbol | STRING | YES |
side |ENUM| YES|
type |ENUM| YES|
cancelReplaceMode|ENUM|YES| 指定类型:STOP_ON_FAILURE
- 如果撤消订单失败将不会继续重新下单。
ALLOW_FAILURE
- 不管撤消订单是否成功都会继续重新下单。
timeInForce|ENUM|NO|
quantity|DECIMAL|NO|
quoteOrderQty |DECIMAL|NO
price |DECIMAL|NO
cancelNewClientOrderId|STRING|NO | 用户自定义的id,如空缺系统会自动赋值
cancelOrigClientOrderId|STRING| NO| 必须提供cancelOrigClientOrderId
或者 cancelOrderId
。 如果两个参数都提供, cancelOrderId
会占优先。
cancelOrderId|LONG|NO| 必须提供cancelOrigClientOrderId
或者 cancelOrderId
。 如果两个参数都提供, cancelOrderId
会占优先。
newClientOrderId |STRING|NO| 用于辨识新订单。
strategyId |INT| NO|
strategyType |INT| NO| 不能低于 1000000
。
stopPrice|DECIMAL|NO|
trailingDelta|LONG|NO|
icebergQty|DECIMAL|NO|
newOrderRespType|ENUM|NO|指定响应类型:
指定响应类型 ACK
, RESULT
, or FULL
; MARKET
与 LIMIT
订单默认为FULL
, 其他默认为ACK
。
selfTradePreventionMode|ENUM|NO|允许的 ENUM 取决于交易对的配置。支持的值有 EXPIRE_TAKER
,EXPIRE_MAKER
,EXPIRE_BOTH
,NONE
。
cancelRestrictions| ENUM | NO | 支持的值: ONLY_NEW
- 如果订单状态为 NEW
,撤销将成功。
ONLY_PARTIALLY_FILLED
- 如果订单状态为 PARTIALLY_FILLED
,撤销将成功。
recvWindow | LONG | NO | 不能大于 60000
timestamp | LONG | YES |
如同 POST /api/v3/order
, 额外的强制参数取决于 type
。
响应格式根据消息的处理是成功、部分成功还是失败而有所不同。
数据来源: 撮合引擎
Response SUCCESS:
选择了STOP_ON_FAILURE, 撤单出现错误
响应:撤单成功,下单失败
选择ALLOW_FAILURE, 撤单出现错误
响应:撤单和下单失败
注意: 上面的 payload 没有显示所有可以出现的字段,更多请看 "订单响应中的特定条件时才会出现的字段" 部分。
#
查看账户当前挂单 (USER_DATA)请小心使用不带symbol参数的调用
权重: 带symbol: 6 不带: 80
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | NO | |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
- 不带symbol参数,会返回所有交易对的挂单
数据源: 缓存 => 数据库
响应:
注意: 上面的 payload 没有显示所有可以出现的字段,更多请看 "订单响应中的特定条件时才会出现的字段" 部分。
#
查询所有订单(包括历史订单) (USER_DATA)权重: 20
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | |
orderId | LONG | NO | 只返回此orderID之后的订单,缺省返回最近的订单 |
startTime | LONG | NO | |
endTime | LONG | NO | |
limit | INT | NO | Default 500; max 1000. |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
注意:
- 如设置
orderId
, 订单量将 >=orderId
。否则将返回最新订单。 - 一些历史订单
cummulativeQuoteQty
< 0, 是指数据此时不存在。 - 如果设置
startTime
和endTime
,orderId
就不需要设置。
数据源: 数据库
响应:
注意: 上面的 payload 没有显示所有可以出现的字段,更多请看 "订单响应中的特定条件时才会出现的字段" 部分。
#
发送新 OCO 订单 - 已弃用 (TRADE)权重: 1
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | |
listClientOrderId | STRING | NO | 整个orderList的唯一ID |
side | ENUM | YES | 详见枚举定义:订单方向 |
quantity | DECIMAL | YES | |
limitClientOrderId | STRING | NO | 限价单的唯一ID |
price | DECIMAL | YES | |
limitStrategyId | INT | NO | |
limitStrategyType | INT | NO | 不能低于 1000000 |
limitIcebergQty | DECIMAL | NO | |
trailingDelta | LONG | NO | |
stopClientOrderId | STRING | NO | 止损/止损限价单的唯一ID |
stopPrice | DECIMAL | YES | |
stopStrategyId | INT | NO | |
stopStrategyType | INT | NO | 不能低于 1000000 |
stopLimitPrice | DECIMAL | NO | 如果提供,须配合提交stopLimitTimeInForce |
stopIcebergQty | DECIMAL | NO | |
stopLimitTimeInForce | ENUM | NO | 有效值 GTC /FOK /IOC |
newOrderRespType | ENUM | NO | 详见枚举定义:订单返回类型 |
selfTradePreventionMode | ENUM | NO | 允许的 ENUM 取决于交易对的配置。支持的值有 EXPIRE_TAKER ,EXPIRE_MAKER ,EXPIRE_BOTH ,NONE 。 |
recvWindow | LONG | NO | 不能大于 60000 |
timestamp | LONG | YES |
其他信息:
- 价格限制:
SELL
: 限价 > 最新成交价 >触发价BUY
: 限价 < 最新成交价 < 触发价
- 数量限制:
- 两个 legs 必须具有同样的数量。
ICEBERG
数量不必相同
- 下单rate
- 一个
OCO
订单被算成2个普通订单.
- 一个
数据源: 撮合引擎
响应
#
New Order list - OCO (TRADE)权重: 1
发送新 one-cancels-the-other (OCO) 订单,激活其中一个订单会立即取消另一个订单。
- OCO 有 2 legs,称为 上方 leg 和 下方 leg。
- 其中一条 leg 必须是
LIMIT_MAKER
订单,另一条 leg 必须是STOP_LOSS
或STOP_LOSS_LIMIT
订单。 - 针对价格限制:
- 如果 OCO 订单方向是
SELL
:LIMIT_MAKER
price
> 最后交易价格 >stopPrice
- 如果 OCO 订单方向是
BUY
:LIMIT_MAKER
price
< 最后交易价格 <stopPrice
- 如果 OCO 订单方向是
- 在订单率限制中,OCO 计为 2 个订单。
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | Yes | |
listClientOrderId | STRING | No | 整个 OCO order list 的唯一ID。 如果未发送则自动生成。 仅当前一个订单已填满或完全过期时,才会接受具有相同的 listClientOrderId 。 listClientOrderId 与 aboveClientOrderId 和 belowCLientOrderId 不同。 |
side | ENUM | Yes | 订单方向:BUY or SELL |
quantity | DECIMAL | Yes | 两个 legs 的数量。 |
aboveType | ENUM | Yes | 支持值:STOP_LOSS_LIMIT , STOP_LOSS , LIMIT_MAKER 。 |
aboveClientOrderId | STRING | No | 上方 leg 的唯一ID。 如果未发送则自动生成。 |
aboveIcebergQty | LONG | No | 请注意,只有当 aboveTimeInForce 为 GTC 时才能使用。 |
abovePrice | DECIMAL | No | |
aboveStopPrice | DECIMAL | No | 如果 aboveType 是 STOP_LOSS 或 STOP_LOSS_LIMIT 才能使用。必须指定 aboveStopPrice 或 aboveTrailingDelta 或两者。 |
aboveTrailingDelta | LONG | No | 请看 追踪止盈止损(Trailing Stop)订单常见问题。 |
aboveTimeInForce | DECIMAL | No | 如果 aboveType 是 STOP_LOSS_LIMIT ,则为必填项。 |
aboveStrategyId | INT | No | 订单策略中上方 leg 订单的 ID。 |
aboveStrategyType | INT | No | 上方 leg 订单策略的任意数值。 小于 1000000 的值被保留,无法使用。 |
belowType | ENUM | Yes | 支持值:STOP_LOSS_LIMIT , STOP_LOSS , LIMIT_MAKER 。 |
belowClientOrderId | STRING | No | |
belowIcebergQty | LONG | No | 请注意,只有当 belowTimeInForce 为 GTC 时才能使用。 |
belowPrice | DECIMAL | No | |
belowStopPrice | DECIMAL | No | 如果 belowType 是 STOP_LOSS 或 STOP_LOSS_LIMIT 才能使用。 必须指定 belowStopPrice 或 belowTrailingDelta 或两者。 |
belowTrailingDelta | LONG | No | 请看 追踪止盈止损(Trailing Stop)订单常见问题。 |
belowTimeInForce | ENUM | No | 如果belowType 是 STOP_LOSS_LIMIT ,则为必须配合提交的值。 |
belowStrategyId | INT | No | 订单策略中下方 leg 订单的 ID。 |
belowStrategyType | INT | No | 下方 leg 订单策略的任意数值。 小于 1000000 的值被保留,无法使用。 |
newOrderRespType | ENUM | No | 响应格式可选值: ACK , RESULT , FULL 。 |
selfTradePreventionMode | ENUM | No | 允许的 ENUM 取决于交易对上的配置。 可能支持的值为 EXPIRE_TAKER , EXPIRE_MAKER , EXPIRE_BOTH , NONE 。 |
recvWindow | LONG | No | 不能大于 60000 。 |
timestamp | LONG | Yes |
数据源: 撮合引擎
响应:
使用 newOrderRespType
参数来选择 orderReports
的响应格式。以下示例适用于 RESULT
响应类型。 请参阅 POST /api/v3/order
了解更多 orderReports
的响应类型。
#
取消 OCO 订单(TRADE)DELETE /api/v3/orderList
取消整个订单列表。
权重: 1
参数
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | |
orderListId | LONG | NO | orderListId 或 listClientOrderId 必须被提供 |
listClientOrderId | STRING | NO | orderListId 或 listClientOrderId 必须被提供 |
newClientOrderId | STRING | NO | 用户自定义的本次撤销操作的ID(注意不是被撤销的订单的自定义ID)。如无指定会自动赋值。 |
recvWindow | LONG | NO | 不能大于 60000 |
timestamp | LONG | YES |
其他注意点:
- 取消单个 leg 将取消整个 OCO 订单.
- 如果
orderListId
和listClientOrderId
一起发送,orderListId
优先被考虑.
数据源: 撮合引擎
响应
#
查询 OCO (USER_DATA)GET /api/v3/orderList
根据提供的可选参数检索特定的OCO。
权重: 4
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
orderListId | LONG | NO | orderListId 或 origClientOrderId 必须提供一个。 |
origClientOrderId | STRING | NO | orderListId 或 origClientOrderId 必须提供一个。 |
recvWindow | LONG | NO | 赋值不得大于 60000 |
timestamp | LONG | YES |
数据源: 数据库
响应
#
查询所有 OCO (USER_DATA)GET /api/v3/allOrderList
根据提供的可选参数检索所有的OCO。
权重: 20
参数
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
fromId | LONG | NO | 提供该项后, startTime 和 endTime 都不可提供 |
startTime | LONG | NO | |
endTime | LONG | NO | |
limit | INT | NO | 默认值: 500; 最大值: 1000 |
recvWindow | LONG | NO | 赋值不能超过 60000 |
timestamp | LONG | YES |
数据源: 数据库
响应
#
查询 OCO 挂单 (USER_DATA)GET /api/v3/openOrderList
权重: 6
参数
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
recvWindow | LONG | NO | 赋值不能大于 60000 |
timestamp | LONG | YES |
数据源: 数据库
响应
#
下 SOR 订单 (TRADE)发送使用智能订单路由 (SOR) 的新订单。
权重: 1
参数
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | |
side | ENUM | YES | |
type | ENUM | YES | |
timeInForce | ENUM | NO | |
quantity | DECIMAL | YES | |
price | DECIMAL | NO | |
newClientOrderId | STRING | NO | 用户自定义的orderid,如空缺系统会自动赋值。如果几个订单具有相同的 newClientOrderID 赋值,那么只有在前一个订单成交后才可以接受下一个订单,否则该订单将被拒绝。 |
strategyId | INT | NO | |
strategyType | INT | NO | 赋值不能小于 1000000 . |
icebergQty | DECIMAL | NO | 仅有限价单可以使用该参数,含义为创建冰山订单并指定冰山订单的数量。 |
newOrderRespType | ENUM | NO | 指定响应类型: |
指定响应类型 ACK
, RESULT
或 FULL
; 默认为 FULL
。
selfTradePreventionMode |ENUM | NO | 允许的 ENUM 取决于交易对的配置。支持的值有 EXPIRE_TAKER
,EXPIRE_MAKER
,EXPIRE_BOTH
,NONE
。
recvWindow | LONG | NO | 赋值不能大于 60000
timestamp | LONG | YES |
请注意: POST /api/v3/sor/order
只支持 限价
和 市场
单, 并不支持 quoteOrderQty
。
数据源: 撮合引擎
响应:
#
测试 SOR 下单接口 (TRADE)用于测试使用智能订单路由 (SOR) 的订单请求,但不会提交到撮合引擎
权重:
| 条件 | 请求权重 |
| --------- | -------------- |
| 没有 computeCommissionRates
| 1 |
| 有 computeCommissionRates
| 20 |
参数:
除了 POST /api/v3/sor/order
所有参数,
如下参数也接受:
参数名 | 类型 | 是否必需 | 描述 |
---|---|---|---|
computeCommissionRates | BOOLEAN | NO | 默认值: false |
数据源: 缓存
响应:
没有 computeCommissionRates
有 computeCommissionRates
#
账户接口#
账户信息 (USER_DATA)权重: 20
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
omitZeroBalances | BOOLEAN | NO | 如果true ,将隐藏所有零余额。 默认值: false |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
数据源: 缓存 => 数据库
响应:
#
账户成交历史 (USER_DATA)获取某交易对的成交历史
权重: 20
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | |
orderId | LONG | NO | 必须要和参数symbol 一起使用. |
startTime | LONG | NO | |
endTime | LONG | NO | |
fromId | LONG | NO | 返回该fromId之后的成交,缺省返回最近的成交 |
limit | INT | NO | Default 500; max 1000. |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
备注:
- 如果设置了
fromId
, 会返回ID大于此fromId
的交易. 不然则会返回最近的交易. startTime
和endTime
设置的时间间隔不能超过24小时.- 支持的所有参数组合:
symbol
symbol
+orderId
symbol
+startTime
symbol
+endTime
symbol
+fromId
symbol
+startTime
+endTime
symbol
+orderId
+fromId
数据源: 数据库
响应:
#
查询目前下单数 (TRADE)获取用户在当前时间区间内的下单总数。
权重: 40
参数:
名称 | 类型| 是否必需 | 描述
------------ | ------------ | ------------ | ------------
recvWindow | LONG | NO | 赋值不得大于 60000
timestamp | LONG | YES |
数据源: 缓存
响应
#
获取 Prevented Matches (USER_DATA)获取因 STP 而过期的订单列表。
这些是支持的组合:
symbol
+preventedMatchId
symbol
+orderId
symbol
+orderId
+fromPreventedMatchId
(limit
默认为 500)symbol
+orderId
+fromPreventedMatchId
+limit
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | |
preventedMatchId | LONG | NO | |
orderId | LONG | NO | |
fromPreventedMatchId | LONG | NO | |
limit | INT | NO | 默认:500 ;最大:1000 |
recvWindow | LONG | NO | 赋值不得大于 60000 |
timestamp | LONG | YES |
权重
情况 | 权重 |
---|---|
如果 symbol 是无效的 | 2 |
通过 preventedMatchId 查询 | 2 |
通过 orderId 查询 | 20 |
数据源:
数据库
响应:
#
查询分配结果 (USER_DATA)检索由 SOR 订单生成引起的分配结果。
权重: 20
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | Yes | |
startTime | LONG | No | |
endTime | LONG | No | |
fromAllocationId | INT | No | |
limit | INT | No | 默认值 500; 最大值 1000 |
orderId | LONG | No | |
recvWindow | LONG | No | 不能大于 60000 |
timestamp | LONG | No |
支持的参数组合:
参数 | 响应 |
---|---|
symbol | 按从最旧到最新排序的分配 |
symbol + startTime | 从 startTime 开始的最旧的分配 |
symbol + endTime | 到 endTime 为止的最新的分配 |
symbol + startTime + endTime | 在指定时间范围内的分配 |
symbol + fromAllocationId | 从指定 AllocationId 开始的分配 |
symbol + orderId | 按从最旧到最新排序并和特定订单关联的分配 |
symbol + orderId + fromAllocationId | 从指定 AllocationId 开始并和特定订单关联的分配 |
注意: startTime
和 endTime
之间的时间不能超过 24 小时。
数据源: 数据库
响应:
#
查询佣金费率 (USER_DATA)获取当前账户的佣金费率。
权重: 20
参数:
参数名 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES |
数据源: 数据库
响应:
#
用户数据流订阅接口此处仅列出如何得到数据流名称及如何维持有效期的接口,具体订阅方式参考另一篇websocket接口文档
#
新建用户数据流 (USER_STREAM)从创建起60分钟有效
权重: 2
参数: NONE
数据源: 缓存
响应:
#
Keepalive (USER_STREAM)延长用户数据流有效期到60分钟之后。 建议每30分钟调用一次
权重: 2
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
listenKey | STRING | YES |
数据源: 缓存
响应:
#
关闭用户数据流 (USER_STREAM)关闭用户数据流。
权重: 2
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
listenKey | STRING | YES |
数据源: 缓存
响应: