更新日志
2020-12-30
REST
以下接口的IP限制权重将采用基于参数LIMIT数值的新权重规则:
GET /dapi/v1/klines
GET /dapi/v1/continuousKlines
GET /dapi/v1/indexPriceKlines
GET /dapi/v1/markPriceKlines
以下接口的IP限制权重调整到 20:
GET /dapi/v1/historicalTrades
GET /dapi/v1/allForceOrders
GET /dapi/v1/forceOrders
GET /dapi/v1/aggTrades
2020-11-27
- 新增接口
GET /dapi/v1/commissionRate
以查询用户交易手续费率。
2020-08-14
WEBSOCKET
- 新增 Websocket 账户信息请求功能, 并开放以下请求:
<listenKey>@account
请求获取账户信息<listenKey>@balance
请求获取账户余额<listenKey>@balance
请求获取持仓信息
REST
- 新增接口
GET /dapi/v1/adlQuantile
以获取持仓ADL队列位置估算分数
2020-08-12
- 新增接口
GET /dapi/v1/forceOrders
以获取用户强平订单历史.
2020-07-30
币本位永续合约
新增合约类型("contractType")
PERPETUAL
表示币本位永续合约接口
GET /dapi/v1/premiumIndex
新增返回内容:-
lastFundingRate
表示(永续合约的)最近更新的资金费率 -
nextFundingTime
表示(永续合约的)下次资金费时间
-
新增接口
GET /dapi/v1/fundingRate
用以获取币本位永续合约的资金费率历史WSS 推送
<symbol>@markPrice
,<symbol>@markPrice@1s
,<pair>@markPrice
, 和<pair>@markPrice@1s
新增推送内容:r
表示(永续合约的)最近更新的资金费率T
表示(永续合约的)下次资金费时间
2020-07-17
- 接口
GET /dapi/v1/income
权重调整为 20
基本信息
Rest 基本信息
- 本篇列出REST接口的baseurl https://testnet.binancefuture.com
- 所有接口的响应都是JSON格式
- 响应中如有数组,数组元素以时间升序排列,越早的数据越提前。
- 所有时间、时间戳均为UNIX时间,单位为毫秒
- 所有数据类型采用JAVA的数据类型定义
HTTP 返回代码
- HTTP
4XX
错误码用于指示错误的请求内容、行为、格式。 - HTTP
403
错误码表示违反WAF限制(Web应用程序防火墙)。 - HTTP
429
错误码表示警告访问频次超限,即将被封IP - HTTP
418
表示收到429后继续访问,于是被封了。 - HTTP
5XX
错误码用于指示Binance服务侧的问题。 - HTTP
504
表示API服务端已经向业务核心提交了请求但未能获取响应,特别需要注意的是504
代码不代表请求失败,而是未知。很可能已经得到了执行,也有可能执行失败,需要做进一步确认。
错误代码
- 每个接口都有可能抛出异常
异常响应格式如下:
{
"code": -1121,
"msg": "Invalid symbol."
}
- 具体的错误码及其解释在错误代码
接口的基本信息
GET
方法的接口, 参数必须在query string
中发送.POST
,PUT
, 和DELETE
方法的接口, 参数可以在query string
中发送,也可以在request body
中发送(content typeapplication/x-www-form-urlencoded
)。允许混合这两种方式发送参数。但如果同一个参数名在query string和request body中都有,query string中的会被优先采用。- 对参数的顺序不做要求。
访问限制
- 在
/dapi/v1/exchangeInfo
接口中rateLimits
数组里包含有REST接口(不限于本篇的REST接口)的访问限制。包括带权重的访问频次限制、下单速率限制。本篇枚举定义
章节有限制类型的进一步说明。 - 违反上述任何一个访问限制都会收到HTTP 429,这是一个警告.
IP 访问限制
- 每个请求将包含一个
X-MBX-USED-WEIGHT-(intervalNum)(intervalLetter)
的头,其中包含当前IP所有请求的已使用权重。 - 每个路由都有一个"权重",该权重确定每个接口计数的请求数。较重的接口和对多个交易对进行操作的接口将具有较重的"权重"。
- 收到429时,您有责任作为API退回而不向其发送更多的请求。
- 如果屡次违反速率限制和/或在收到429后未能退回,将导致API的IP被禁(http状态418)。
- 频繁违反限制,封禁时间会逐渐延长 ,对于重复违反者,将会被封从2分钟到3天。
- 访问限制是基于IP的,而不是API Key
下单频率限制
- 每个下单请求回报将包含一个
X-MBX-ORDER-COUNT-(intervalNum)(intervalLetter)
的头,其中包含当前账户已用的下单限制数量。 - 被拒绝或不成功的下单并不保证回报中包含以上头内容。
- 下单频率限制是基于每个账户计数的。
接口鉴权类型
- 每个接口都有自己的鉴权类型,鉴权类型决定了访问时应当进行何种鉴权
- 如果需要 API-key,应当在HTTP头中以
X-MBX-APIKEY
字段传递 - API-key 与 API-secret 是大小写敏感的
- 可以在网页用户中心修改API-key 所具有的权限,例如读取账户信息、发送交易指令、发送提现指令
鉴权类型 | 描述 |
---|---|
NONE | 不需要鉴权的接口 |
TRADE | 需要有效的API-KEY和签名 |
USER_DATA | 需要有效的API-KEY和签名 |
USER_STREAM | 需要有效的API-KEY |
MARKET_DATA | 需要有效的API-KEY |
需要签名的接口 (TRADE 与 USER_DATA)
- 调用这些接口时,除了接口本身所需的参数外,还需要传递
signature
即签名参数。 - 签名使用
HMAC SHA256
算法. API-KEY所对应的API-Secret作为HMAC SHA256
的密钥,其他所有参数作为HMAC SHA256
的操作对象,得到的输出即为签名。 - 签名大小写不敏感。
- 当同时使用query string和request body时,
HMAC SHA256
的输入query string在前,request body在后
时间同步安全
- 签名接口均需要传递
timestamp
参数, 其值应当是请求发送时刻的unix时间戳(毫秒) - 服务器收到请求时会判断请求中的时间戳,如果是5000毫秒之前发出的,则请求会被认为无效。这个时间窗口值可以通过发送可选参数
recvWindow
来自定义。 - 另外,如果服务器计算得出客户端时间戳在服务器时间的‘未来’一秒以上,也会拒绝请求。
逻辑伪代码:
if (timestamp < (serverTime + 1000) && (serverTime - timestamp) <= recvWindow) {
// process request
} else {
// reject request
}
关于交易时效性
互联网状况并不100%可靠,不可完全依赖,因此你的程序本地到币安服务器的时延会有抖动.
这是我们设置recvWindow
的目的所在,如果你从事高频交易,对交易时效性有较高的要求,可以灵活设置recvWindow以达到你的要求。
POST /dapi/v1/order 的示例
以下是在linux bash环境下使用 echo openssl 和curl工具实现的一个调用接口下单的示例 apikey、secret仅供示范
Key | Value |
---|---|
apiKey | dbefbc809e3e83c283a984c3a1459732ea7db1360ca80c5c2c8867408d28cc83 |
secretKey | 2b5eb11e18796d12d88f13dc27dbbd02c2cc51ff7059765ed9821957d82bb4d9 |
参数 | 取值 |
---|---|
symbol | BTCUSD_200925 |
side | BUY |
type | LIMIT |
timeInForce | GTC |
quantity | 1 |
price | 9000 |
recvWindow | 5000 |
timestamp | 1591702613943 |
示例 1: 所有参数通过 query string 发送
示例1:
HMAC SHA256 签名:
$ echo -n "symbol=BTCUSD_200925&side=BUY&type=LIMIT&quantity=1&price=9000&timeInForce=GTC&recvWindow=5000×tamp=1591702613943" | openssl dgst -sha256 -hmac "2b5eb11e18796d12d88f13dc27dbbd02c2cc51ff7059765ed9821957d82bb4d9"
(stdin)= 3c661234138461fcc7a7d8746c6558c9842d4e10870d2ecbedf7777cad694af9
curl 调用:
(HMAC SHA256)
$ curl -H "X-MBX-APIKEY: dbefbc809e3e83c283a984c3a1459732ea7db1360ca80c5c2c8867408d28cc83" -X POST 'https://testnet.binancefuture.com/dapi/v1/order?symbol=BTCUSD_200925&side=BUY&type=LIMIT&quantity=1&price=9000&timeInForce=GTC&recvWindow=5000×tamp=1591702613943&signature= 3c661234138461fcc7a7d8746c6558c9842d4e10870d2ecbedf7777cad694af9'
queryString:
symbol=BTCUSD_200925
&side=BUY
&type=LIMIT
&timeInForce=GTC
&quantity=1
&price=0.1
&recvWindow=5000
×tamp=1499827319559
示例 2: 所有参数通过 request body 发送
示例2:
HMAC SHA256 签名:
$ echo -n "symbol=BTCUSD_200925&side=BUY&type=LIMIT&quantity=1&price=9000&timeInForce=GTC&recvWindow=5000×tamp=1591702613943" | openssl dgst -sha256 -hmac "2b5eb11e18796d12d88f13dc27dbbd02c2cc51ff7059765ed9821957d82bb4d9"
(stdin)= 21fd819734bf0e5c68740eed892909414d693635c5f7fffab1313925ae13556a
curl 调用:
(HMAC SHA256)
$ curl -H "X-MBX-APIKEY: dbefbc809e3e83c283a984c3a1459732ea7db1360ca80c5c2c8867408d28cc83" -X POST 'https://testnet.binancefuture.com/dapi/v1/order' -d 'symbol=BTCUSD_200925&side=BUY&type=LIMIT&quantity=1&price=9000&timeInForce=GTC&recvWindow=5000×tamp=1591702613943&signature= 21fd819734bf0e5c68740eed892909414d693635c5f7fffab1313925ae13556a'
requestBody:
symbol=BTCUSD_200925
&side=BUY
&type=LIMIT
&timeInForce=GTC
&quantity=1
&price=9000
&recvWindow=5000
×tamp=1591702613943
示例 3: 混合使用 query string 与 request body
示例3:
HMAC SHA256 签名:
$ echo -n "symbol=BTCUSD_200925&side=BUY&type=LIMIT&quantity=1&price=9000&timeInForce=GTC&recvWindow=5000×tamp=1591702613943" | openssl dgst -sha256 -hmac "2b5eb11e18796d12d88f13dc27dbbd02c2cc51ff7059765ed9821957d82bb4d9"
(stdin)= 21fd819734bf0e5c68740eed892909414d693635c5f7fffab1313925ae13556a
curl 调用:
(HMAC SHA256)
$ curl -H "X-MBX-APIKEY: dbefbc809e3e83c283a984c3a1459732ea7db1360ca80c5c2c8867408d28cc83" -X POST 'https://testnet.binancefuture.com/dapi/v1/order?symbol=BTCUSD_200925&side=BUY&type=LIMIT&timeInForce=GTC' -d 'quantity=1&price=9000&recvWindow=5000×tamp=1591702613943&signature=21fd819734bf0e5c68740eed892909414d693635c5f7fffab1313925ae13556a'
- queryString: symbol=BTCUSD_200925&side=BUY&type=LIMIT&timeInForce=GTC
- requestBody: quantity=1&price=9000&recvWindow=5000×tamp= 1591702613943
请注意,示例3中的签名有些许不同,在"GTC"和"quantity=1"之间没有"&"字符。
公开API参数
术语解释
symbol
指合约交易对名称pair
指合约交易对的标的物交易对base asset
指合约交易对的交易对象,即标的物交易对交易对象quote asset
指合约交易对的定价资产,即标的物交易对的定价资产margin asset
指合约交易对使用的保证金资产
枚举定义
交易对类型:
- DELIVERY_CONTRACT 交割合约
- PERPETUAL_CONTRACT 永续合约
合约类型 (contractType):
- PERPETUAL 永续合约
- CURRENT_QUARTER 当季合约
- NEXT_QUARTER 次季合约
合约状态 (contractStatus):
- PENDING_TRADING 待上市
- TRADING 交易中
- PRE_DELIVERING 结算中
- DELIVERING 交割中
- DELIVERED 已交割
订单状态 (status):
- NEW 新建订单
- PARTIALLY_FILLED 部分成交
- FILLED 全部成交
- CANCELED 已撤销
- EXPIRED 订单过期(根据timeInForce参数规则)
订单种类 (type):
- LIMIT 限价单
- MARKET 市价单
- STOP 止损限价单
- STOP_MARKET 止损市价单
- TAKE_PROFIT 止盈限价单
- TAKE_PROFIT_MARKET 止盈市价单
- TRAILING_STOP_MARKET 跟踪止损单
订单方向 (side):
- BUY 买入
- SELL 卖出
持仓方向 (positionSide):
- BOTH 单一持仓方向
- LONG 多头(双向持仓下)
- SHORT 空头(双向持仓下)
有效方式 (timeInForce):
- GTC - Good Till Cancel 成交为止
- IOC - Immediate or Cancel 无法立即成交(吃单)的部分就撤销
- FOK - Fill or Kill 无法全部立即成交就撤销
- GTX - Good Till Crossing 无法成为挂单方就撤销
条件价格触发类型 (workingType)
- MARK_PRICE
- CONTRACT_PRICE
响应类型 (newOrderRespType)
- ACK
- RESULT
K线间隔:
m -> 分钟; h -> 小时; d -> 天; w -> 周; M -> 月
- 1m
- 3m
- 5m
- 15m
- 30m
- 1h
- 2h
- 4h
- 6h
- 8h
- 12h
- 1d
- 3d
- 1w
- 1M
限制种类 (rateLimitType)
REQUEST_WEIGHT
{
"rateLimitType": "REQUEST_WEIGHT",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 6000
}
ORDERS
{
"rateLimitType": "ORDERS",
"interval": "MINUTE",
"intervalNum": 1,
"limit": 1200
}
REQUESTS_WEIGHT 单位时间请求权重之和上限
ORDERS 单位时间下单(撤单)次数上限
限制间隔
- MINUTE
过滤器
过滤器,即Filter,定义了一系列交易规则。
共有两类,分别是针对交易对的过滤器symbol filters
,和针对整个交易所的过滤器exchange filters
(暂不支持)
交易对过滤器
PRICE_FILTER 价格过滤器
/exchangeInfo 响应中的格式:
{
"filterType": "PRICE_FILTER",
"minPrice": "0.00000100",
"maxPrice": "100000.00000000",
"tickSize": "0.00000100"
}
价格过滤器用于检测order订单中price参数的合法性
minPrice
定义了price
/stopPrice
允许的最小值maxPrice
定义了price
/stopPrice
允许的最大值。tickSize
定义了price
/stopPrice
的步进间隔,即price必须等于minPrice+(tickSize的整数倍) 以上每一项均可为0,为0时代表这一项不再做限制。
逻辑伪代码如下:
price
>=minPrice
price
<=maxPrice
- (
price
-minPrice
) %tickSize
== 0
LOT_SIZE 订单尺寸
/exchangeInfo 响应中的格式:*
{
"filterType": "LOT_SIZE",
"minQty": "0.00100000",
"maxQty": "100000.00000000",
"stepSize": "0.00100000"
}
lots是拍卖术语,这个过滤器对订单中的quantity
也就是数量参数进行合法性检查。包含三个部分:
minQty
表示quantity
允许的最小值.maxQty
表示quantity
允许的最大值stepSize
表示quantity
允许的步进值。
逻辑伪代码如下:
quantity
>=minQty
quantity
<=maxQty
- (
quantity
-minQty
) %stepSize
== 0
MARKET_LOT_SIZE 市价订单尺寸
参考LOT_SIZE,区别仅在于对市价单还是限价单生效
MAX_NUM_ORDERS 最多订单数
/exchangeInfo 响应中的格式:
{
"filterType": "MAX_NUM_ORDERS",
"limit": 25
}
定义了某个交易对最多允许的挂单数量(不包括已关闭的订单)
普通订单与条件订单均计算在内
PERCENT_PRICE 价格振幅过滤器
/exchangeInfo 响应中的格式:
{
"filterType": "PERCENT_PRICE",
"multiplierUp": "1.1500",
"multiplierDown": "0.8500",
"multiplierDecimal": 4
}
PERCENT_PRICE
定义了基于标记价格计算的挂单价格的可接受区间.
挂单价格必须同时满足以下条件:
- 买单:
price
<=markPrice
*multiplierUp
- 卖单:
price
>=markPrice
*multiplierDown
行情接口
测试服务器连通性 PING
GET /dapi/v1/ping
响应:
{}
测试能否联通
权重: 1
参数: NONE
获取服务器时间
响应:
{
"serverTime": 1499827319559 // 当前的系统时间
}
GET /dapi/v1/time
获取服务器时间
权重: 1
参数: NONE
获取交易规则和交易对
响应:
{
"exchangeFilters": [],
"rateLimits": [ // API访问的限制
{
"interval": "MINUTE", // 按照分钟计算
"intervalNum": 1, // 按照1分钟计算
"limit": 2400, // 上限次数
"rateLimitType": "REQUEST_WEIGHT" // 按照访问权重来计算
},
{
"interval": "MINUTE",
"intervalNum": 1,
"limit": 1200,
"rateLimitType": "ORDERS" // 按照订单数量来计算
}
],
"serverTime": 1565613908500, // 系统时间
"symbols": [ // 交易对信息
{
"filters": [
{
"filterType": "PRICE_FILTER", // 价格限制
"maxPrice": "100000", // 价格上限, 最大价格
"minPrice": "0.1", // 价格下限, 最小价格
"tickSize": "0.1" // 步进间隔
},
{
"filterType": "LOT_SIZE", // 数量限制
"maxQty": "100000", // 数量上限, 最大数量
"minQty": "1", // 数量下限, 最小数量
"stepSize": "1" // 允许的步进值
},
{
"filterType": "MARKET_LOT_SIZE", // 市价订单数量限制
"maxQty": "100000", // 数量上限, 最大数量
"minQty": "1", // 数量下限, 最小数量
"stepSize": "1" // 允许的步进值
},
{
"filterType": "MAX_NUM_ORDERS", // 最多挂单数限制
"limit": 200
},
{
"filterType": "PERCENT_PRICE", // 价格比限制
"multiplierUp": "1.0500", // 价格上限百分比
"multiplierDown": "0.9500", // 价格下限百分比
"multiplierDecimal": 4
}
],
"OrderType": [ // 订单类型
"LIMIT", // 限价单
"MARKET", // 市价单
"STOP", // 止损单
"TAKE_PROFIT", // 止盈单
"TRAILING_STOP_MARKET" // 跟踪止损单
],
"timeInForce": [ // 有效方式
"GTC", // 成交为止, 一直有效
"IOC", // 无法立即成交(吃单)的部分就撤销
"FOK", // 无法全部立即成交就撤销
"GTX" // 无法成为挂单方就撤销
],
"symbol": "BTCUSD_200925", // 交易对
"pair": "BTCUSD", // 标的交易对
"contractType": "CURRENT_QUARTER", // 合约类型
"deliveryDate": 1601020800000,
"onboardDate": 1590739200000,
"contractStatus": "TRADING", // 交易对状态
"contractSize": 100, //
"quoteAsset": "USD", // 报价币种
"baseAsset": "BTC", // 标的物
"marginAsset": "BTC", // 保证金币种
"pricePrecision": 1, // 价格小数点位数
"quantityPrecision": 0, // 数量小数点位数
"baseAssetPrecision": 8,
"quotePrecision": 8,
"equalQtyPrecision": 4, // 请忽略
"triggerProtect": "0.0500", // 开启"priceProtect"的条件订单的触发阈值
"maintMarginPercent": "2.5000", // 请忽略
"requiredMarginPercent": "5.0000", // 请忽略
"underlyingType": "COIN", // 标的类型
"underlyingSubType": [] // 标的物子类型
}
],
"timezone": "UTC" // 服务器所用的时间区域
}
GET /dapi/v1/exchangeInfo
获取交易规则和交易对
权重: 1
参数: NONE
深度信息
响应:
{
"lastUpdateId": 16769853,
"symbol": "BTCUSD_PERP", // 交易对
"pair": "BTCUSD", // 标的交易对
"E": 1591250106370, // 消息时间
"T": 1591250106368, // 撮合时间
"bids": [ // 买单
[
"9638.0", // 价格
"431" // 数量
]
],
"asks": [ // 卖单
[
"9638.2", // 价格
"12" // 数量
]
]
}
GET /dapi/v1/depth
权重:
limit | 权重 |
---|---|
5, 10, 20, 50 | 2 |
100 | 5 |
500 | 10 |
1000 | 20 |
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
limit | INT | NO | 默认 500; 可选值:[5, 10, 20, 50, 100, 500, 1000] |
近期成交
响应:
[
{
"id": 28457, // 成交ID
"price": "9635.0", // 成交价格
"qty": "1", // 成交量
"baseQty": "0.01037883", // 成交额(标的数量)
"time": 1591250192508, // 时间
"isBuyerMaker": true // 买方是否为挂单方
}
]
GET /dapi/v1/trades
获取近期成交
权重: 1
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
limit | INT | NO | 默认值:500 最大值:1000. |
查询历史成交 (MARKET_DATA)
响应:
[
{
"id": 595103, // 成交ID
"price": "9642.2", // 成交价格
"qty": "1", // 成交量(张数)
"baseQty": "0.01037108", // 成交额(标的物数量)
"time": 1499865549590, // 时间
"isBuyerMaker": true // 买方是否为挂单方
}
]
GET /dapi/v1/historicalTrades
权重: 20
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
limit | INT | NO | 默认值:500 最大值:1000. |
fromId | LONG | NO | 从哪一条成交id开始返回. 缺省返回最近的成交记录 |
近期成交(归集)
响应:
[
{
"a": 416690, // 归集成交ID
"p": "9642.4", // 成交价
"q": "3", // 成交量
"f": 595259, // 被归集的首个成交ID
"l": 595259, // 被归集的末个成交ID
"T": 1591250548649, // 成交时间
"m": true, // 是否为主动卖出单
}
]
GET /dapi/v1/aggTrades
归集交易与逐笔交易的区别在于,同一价格、同一方向、同一时间(按秒计算)的trade会被聚合为一条
权重: 20
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
fromId | LONG | NO | 从包含fromID的成交开始返回结果 |
startTime | LONG | NO | 从该时刻之后的成交记录开始返回结果 |
endTime | LONG | NO | 返回该时刻为止的成交记录 |
limit | INT | NO | 默认 500; 最大 1000. |
- 如果没有发送任何筛选参数(
fromId
,startTime
,endTime
),默认返回最近的成交记录
最新现货指数价格和Mark Price
响应:
[
{
"symbol": "BTCUSD_PERP", // 交易对
"pair": "BTCUSD", // 基础标的
"markPrice": "11029.69574559", // 标记价格
"indexPrice": "10979.14437500", // 指数价格
"estimatedSettlePrice": "10981.74168236", // 预估结算价,仅在交割开始前最后一小时有意义
"lastFundingRate": "0.00071003", // 最近更新的资金费率, 只对永续合约有效,其他合约返回""
"interestRate": "0.00010000", // 标的资产基础利率,只对永续合约有效,其他合约返回""
"nextFundingTime": 1596096000000, // 下次资金费时间,只对永续合约有效,其他合约返回0
"time": 1596094042000 // 更新时间
},
{
"symbol": "BTCUSD_200925",
"pair": "BTCUSD",
"markPrice": "12077.01343750",
"indexPrice": "10979.10312500",
"estimatedSettlePrice": "10981.74168236",
"lastFundingRate": "",
"interestRate": "",
"nextFundingTime": 0,
"time": 1596094042000
}
]
GET /dapi/v1/premiumIndex
权重: 1
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | NO | 交易对 |
pair | STRING | NO | 标的交易对 |
查询永续合约资金费率历史
响应:
[
{
"symbol": "BTCUSD_PERP", // 交易对
"fundingTime": 1596038400000, // 资金费时间
"fundingRate": "-0.00300000" // 资金费率
},
{
"symbol": "BTCUSD_PERP",
"fundingTime": 1596067200000,
"fundingRate": "-0.00300000"
}
]
GET /dapi/v1/fundingRate
权重: 1
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
startTime | LONG | NO | 起始时间 |
endTime | LONG | NO | 结束时间 |
limit | INT | NO | 默认值:100 最大值:1000 |
- 对非永续合约,将返回空列表
K线数据
响应:
[
[
1591258320000, // 开盘时间
"9640.7", // 开盘价
"9642.4", // 最高价
"9640.6", // 最低价
"9642.0", // 收盘价(当前K线未结束的即为最新价)
"206", // 成交量
1591258379999, // 收盘时间
"2.13660389", // 成交额(标的数量)
48, // 成交笔数
"119", // 主动买入成交量
"1.23424865", // 主动买入成交额(标的数量)
"0" // 请忽略该参数
]
]
GET /dapi/v1/klines
每根K线的开盘时间可视为唯一ID
权重: 取决于请求中的LIMIT参数
LIMIT参数 | 权重 |
---|---|
[1,100) | 1 |
[100, 500) | 2 |
[500, 1000] | 5 |
> 1000 | 10 |
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
interval | ENUM | YES | 时间间隔 |
startTime | LONG | NO | 起始时间 |
endTime | LONG | NO | 结束时间 |
limit | INT | NO | 默认值:500 最大值:1500 |
缺省返回最近的数据
订阅Kline需要提供间隔参数,最短为分钟线,最长为月线。支持以下间隔:
m -> 分钟; h -> 小时; d -> 天; w -> 周; M -> 月- 1m
- 3m
- 5m
- 15m
- 30m
- 1h
- 2h
- 4h
- 6h
- 8h
- 12h
- 1d
- 3d
- 1w
- 1M
连续合约K线数据
响应:
[
[
1591258320000, // 开盘时间
"9640.7", // 开盘价
"9642.4", // 最高价
"9640.6", // 最低价
"9642.0", // 收盘价(当前K线未结束的即为最新价)
"206", // 成交量
1591258379999, // 收盘时间
"2.13660389", // 成交额(标的数量)
48, // 成交笔数
"119", // 主动买入成交量
"1.23424865", // 主动买入成交额(标的数量)
"0" // 请忽略该参数
]
]
GET /dapi/v1/continuousKlines
每根K线的开盘时间可视为唯一ID
权重: 取决于请求中的LIMIT参数
LIMIT参数 | 权重 |
---|---|
[1,100) | 1 |
[100, 500) | 2 |
[500, 1000] | 5 |
> 1000 | 10 |
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
pair | STRING | YES | 标的交易对 |
contractType | ENUM | YES | 合约类型 |
interval | ENUM | YES | 时间间隔 |
startTime | LONG | NO | 起始时间 |
endTime | LONG | NO | 结束时间 |
limit | INT | NO | 默认值:500 最大值:1500 |
缺省返回最近的数据
合约类型:
- PERPETUAL 永续合约
- CURRENT_QUARTER 当季交割合约
- NEXT_QUARTER 次季交割合约
价格指数K线数据
响应:
[
[
1591256400000, // 开盘时间
"9653.69440000", // 开盘价
"9653.69640000", // 最高价
"9651.38600000", // 最低价
"9651.55200000", // 收盘价(当前K线未结束的即为最新价)
"0 ", // 请忽略
1591256459999, // 收盘时间
"0", // 请忽略
60, // 构成记录数
"0", // 请忽略
"0", // 请忽略
"0" // 请忽略
]
]
GET /dapi/v1/indexPriceKlines
每根K线的开盘时间可视为唯一ID
权重: 取决于请求中的LIMIT参数
LIMIT参数 | 权重 |
---|---|
[1,100) | 1 |
[100, 500) | 2 |
[500, 1000] | 5 |
> 1000 | 10 |
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
pair | STRING | YES | 标的交易对 |
interval | ENUM | YES | 时间间隔 |
startTime | LONG | NO | 起始时间 |
endTime | LONG | NO | 结束时间 |
limit | INT | NO | 默认值:500 最大值:1500 |
- 最多只能查询最近30天数据
标记价格K线数据
响应:
[
[
1591256400000, // 开盘时间
"9653.69440000", // 开盘价
"9653.69640000", // 最高价
"9651.38600000", // 最低价
"9651.55200000", // 收盘价(当前K线未结束的即为最新价)
"0 ", // 请忽略
1591256459999, // 收盘时间
"0", // 请忽略
60, // 构成记录数
"0", // 请忽略
"0", // 请忽略
"0" // 请忽略
]
]
GET /dapi/v1/markPriceKlines
每根K线的开盘时间可视为唯一ID
权重: 取决于请求中的LIMIT参数
LIMIT参数 | 权重 |
---|---|
[1,100) | 1 |
[100, 500) | 2 |
[500, 1000] | 5 |
> 1000 | 10 |
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
interval | ENUM | YES | 时间间隔 |
startTime | LONG | NO | 起始时间 |
endTime | LONG | NO | 结束时间 |
limit | INT | NO | 默认值:500 最大值:1500 |
- 最多只能查询最近30天数据
24hr价格变动情况
响应:
[
{
"symbol": "BTCUSD_200925",
"pair": "BTCUSD",
"priceChange": "136.6", //24小时价格变动
"priceChangePercent": "1.436", //24小时价格变动百分比
"weightedAvgPrice": "9547.3", //24小时加权平均价
"lastPrice": "9651.6", //最近一次成交价
"lastQty": "1", //最近一次成交量
"openPrice": "9515.0", //24小时内第一次成交的价格
"highPrice": "9687.0", //24小时最高价
"lowPrice": "9499.5", //24小时最低价
"volume": "494109", //24小时成交量
"baseVolume": "5192.94797687", //24小时成交额(标的数量)
"openTime": 1591170300000, //24小时内,第一笔交易的发生时间
"closeTime": 1591256718418, //24小时内,最后一笔交易的发生时间
"firstId": 600507, // 首笔成交id
"lastId": 697803, // 末笔成交id
"count": 97297 // 成交笔数
}
]
GET /dapi/v1/ticker/24hr
请注意,不携带symbol参数会返回全部交易对数据,不仅数据庞大,而且权重极高
权重:
- 带symbol为
1
- 不带为
40
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | NO | 交易对 |
pair | STRING | NO | 标的交易对 |
- symbol 和 pair 不接受同时发送
- 发送 pair的,返回pair对应所有正在交易的symbol数据
- symbol,pair 都没有发送的,返回所有symbol数据
最新价格
响应:
[
{
"symbol": "BTCUSD_200626", // 交易对
"ps": "BTCUSD", // 标的交易对
"price": "9647.8", // 价格
"time": 1591257246176 // 时间
}
]
GET /dapi/v1/ticker/price
返回最近价格
权重:
- 单交易对
1
- 多交易对
2
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | NO | 交易对 |
pair | STRING | NO | 标的交易对 |
- symbol 和 pair 不接受同时发送
- 发送 pair的,返回pair对应所有正在交易的symbol数据
- symbol,pair 都没有发送的,返回所有symbol数据
当前最优挂单
响应:
[
{
"symbol": "BTCUSD_200626", // 交易对
"pair": "BTCUSD", // 标的交易对
"bidPrice": "9650.1", //最优买单价
"bidQty": "16", //最优买单挂单量
"askPrice": "9650.3", //最优卖单价
"askQty": "7", //最优卖单挂单量
"time": 1591257300345
}
]
GET /dapi/v1/ticker/bookTicker
返回当前最优的挂单(最高买单,最低卖单)
权重:
单交易对1
多交易对2
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | NO | 交易对 |
pair | STRING | NO | 标的交易对 |
- symbol 和 pair 不接受同时发送
- 发送 pair的,返回pair对应所有正在交易的symbol数据
- symbol,pair 都没有发送的,返回所有symbol数据
获取市场强平订单
响应:
[
{
"symbol": "BTCUSD_200925", // 交易对
"price": "9425.5", // 订单价格
"origQty": "1", // 订单数量
"executedQty": "1", // 成交量
"avragePrice": "9496.5", // 成交均价
"status": "FILLED", // 订单状态
"timeInForce": "IOC", // 有效方式
"type": "LIMIT", // 订单类型
"side": "SELL", // 订单方向
"time": 1591154240949
},
]
GET /dapi/v1/allForceOrders
权重: 20
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | NO | 交易对 |
pair | STRING | NO | 标的交易对 |
startTime | LONG | NO | 起始时间 |
endTime | LONG | NO | 结束时间 |
limit | LONG | NO | 默认值:100 最大值:1000 |
- symbol 和 pair 不接受同时发送
- 发送 pair的,返回pair对应所有正在交易的symbol数据
- symbol,pair 都没有发送的,返回所有symbol数据
获取未平仓合约数
响应:
{
"symbol": "BTCUSD_200626",
"pair": "BTCUSD",
"openInterest": "15004",
"contractType": "CURRENT_QUARTER",
"time": 1591261042378
}
GET /dapi/v1/openInterest
权重: 1
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
Websocket 行情推送
- 本篇所列出的所有wss接口的baseurl为: wss://dstream.binancefuture.com
- 订阅单一stream格式为 /ws/<streamName>
- 组合streams的URL格式为 /stream?streams=<streamName1>/<streamName2>/<streamName3>
- 订阅组合streams时,事件payload会以这样的格式封装 {"stream":"<streamName>","data":<rawPayload>}
- stream名称中所有交易对,标的交易对,合约类型均为小写
- 每个链接有效期不超过24小时,请妥善处理断线重连。
- 服务端每5分钟会发送ping帧,客户端应当在15分钟内回复pong帧,否则服务端会主动断开链接。允许客户端发送不成对的pong帧(即客户端可以以高于15分钟每次的频率发送pong帧保持链接)。
- Websocket服务器每秒最多接受10个订阅消息。
- 如果用户发送的消息超过限制,连接会被断开连接。反复被断开连接的IP有可能被服务器屏蔽。
- 单个连接最多可以订阅 200 个Streams。
实时订阅/取消数据流
- 以下数据可以通过websocket发送以实现订阅或取消订阅数据流。示例如下。
- 响应内容中的
id
是无符号整数,作为往来信息的唯一标识。
订阅一个信息流
响应
{
"result": null,
"id": 1
}
请求
{
"method": "SUBSCRIBE",
"params":
[
"btcusd_200925@aggTrade",
"btcusd_200925@depth"
],
"id": 1
}
取消订阅一个信息流
响应
{
"result": null,
"id": 312
}
- 请求
{
"method": "UNSUBSCRIBE",
"params":
[
"btcusd_200925@depth"
],
"id": 312
}
已订阅信息流
响应
{
"result": [
"btcusd_200925@aggTrade"
],
"id": 3
}
- 请求
{
"method": "LIST_SUBSCRIPTIONS",
"id": 3
}
设定属性
当前,唯一可以设置的属性是设置是否启用combined
("组合")信息流。
当使用/ws/
("原始信息流")进行连接时,combined属性设置为false
,而使用 /stream/
进行连接时则将属性设置为true
。
响应
{
"result": null
"id": 5
}
- 请求
{
"method": "SET_PROPERTY",
"params":
[
"combined",
true
],
"id": 5
}
检索属性
响应
{
"result": true, // Indicates that combined is set to true.
"id": 2
}
- 请求
{
"method": "GET_PROPERTY",
"params":
[
"combined"
],
"id": 2
}
最新合约价格
aggTrade中的价格'p'或ticker/miniTicker中的价格'c'均可以作为最新成交价。
归集交易
Payload:
{
"e":"aggTrade", // 事件类型
"E":1591261134288, // 事件时间
"a":424951, // 归集成交ID
"s":"BTCUSD_200626", // 交易对
"p":"9643.5", // 成交价格
"q":"2", // 成交量
"f":606073, // 被归集的首个交易ID
"l":606073, // 被归集的末次交易ID
"T":1591261134199, // 成交时间
"m":false / 买方是否是做市方。如true,则此次成交是一个主动卖出单,否则是一个主动买入单。
}
同一价格、同一方向、同一时间(100ms计算)的trade会被聚合为一条.推送间隔100毫秒。
Stream Name:
<symbol>@aggTrade
Update Speed: 100ms
最新现货指数价格
Payload:
{
"e": "indexPriceUpdate", // 事件类型
"E": 1591261236000, // 事件时间
"i": "BTCUSD", // 标的交易对
"p": "9636.57860000", // 指数价格
}
Stream Name:
<pair>@indexPrice
或 <pair>@indexPrice@1s
Update Speed: 3000ms 或 1000ms
最新MarkPrice
Payload:
{
"e":"markPriceUpdate", // 事件类型
"E":1596095725000, // 事件时间
"s":"BTCUSD_201225", // 交易对
"p":"10934.62615417", // 标记价格
"P":"10962.17178236", // 预估结算价,仅在结算前最后一小时有参考价值
"r":"", // 资金费率,对非永续合约显示""
"T":0 // 下个资金时间,对非永续合约显示0
},
Stream Name:
<symbol>@markPrice
或 <symbol>@markPrice@1s
Update Speed: 3000ms 或 1000ms
pair所有symbol最新MarkPrice
Payload:
[
{
"e":"markPriceUpdate", // 事件类型
"E":1596095725000, // 事件时间
"s":"BTCUSD_201225", // 交易对
"p":"10934.62615417", // 标记价格
"P":"10962.17178236", // 预估结算价,仅在结算前最后一小时有参考价值
"r":"", // 资金费率,对非永续合约显示""
"T":0 // 下个资金时间,对非永续合约显示0
},
{
"e":"markPriceUpdate",
"E":1596095725000,
"s":"BTCUSD_PERP",
"p":"11012.31359011",
"P":"10962.17178236",
"r":"0.00000000",
"T":1596096000000
}
]
Stream Name:
<pair>@markPrice
或 <pair>@markPrice@1s
Update Speed: 3000ms 或 1000ms
K线
Payload:
{
"e":"kline", // 事件类型
"E":1591261542539, // 事件时间
"s":"BTCUSD_200626", // 交易对
"k":{
"t":1591261500000, // 这根K线的起始时间
"T":1591261559999, // 这根K线的结束时间
"s":"BTCUSD_200626", // 交易对
"i":"1m", // K线间隔
"f":606400, // 这根K线期间第一笔成交ID
"L":606430, // 这根K线期间末一笔成交ID
"o":"9638.9", // 这根K线期间第一笔成交价
"c":"9639.8", // 这根K线期间末一笔成交价
"h":"9639.8", // 这根K线期间最高成交价
"l":"9638.6", // 这根K线期间最低成交价
"v":"156", // 这根K线期间成交量
"n":31, // 这根K线期间成交笔数
"x":false, // 这根K线是否完结(是否已经开始下一根K线)
"q":"1.61836886", // 这根K线期间成交额(标的数量)
"V":"73", // 主动买入的成交量
"Q":"0.75731156", // 主动买入的成交额(标的数量)
"B":"0" // 忽略此参数
}
}
K线stream逐秒推送所请求的K线种类(最新一根K线)的更新。
订阅Kline需要提供间隔参数,最短为分钟线,最长为月线。支持以下间隔:
m -> 分钟; h -> 小时; d -> 天; w -> 周; M -> 月
- 1m
- 3m
- 5m
- 15m
- 30m
- 1h
- 2h
- 4h
- 6h
- 8h
- 12h
- 1d
- 3d
- 1w
- 1M
Stream Name:
<symbol>@kline_<interval>
例如: btcusd_200626@kline_1m
Update Speed: 250ms
连续合约K线
Payload:
{
"e":"continuous_kline", // 事件类型
"E":1591261542539, // 事件时间
"ps":"BTCUSD", // 标的交易对
"ct":"NEXT_QUARTER", // 合约类型
"k":{
"t":1591261500000, // 这根K线的起始时间
"T":1591261559999, // 这根K线的结束时间
"i":"1m", // K线间隔
"f":606400, // 这根K线期间第一笔成交ID
"L":606430, // 这根K线期间末一笔成交ID
"o":"9638.9", // 这根K线期间第一笔成交价
"c":"9639.8", // 这根K线期间末一笔成交价
"h":"9639.8", // 这根K线期间最高成交价
"l":"9638.6", // 这根K线期间最低成交价
"v":"156", // 这根K线期间成交量
"n":31, // 这根K线期间成交笔数
"x":false, // 这根K线是否完结(是否已经开始下一根K线)
"q":"1.61836886", // 这根K线期间成交额(标的数量)
"V":"73", // 主动买入的成交量
"Q":"0.75731156", // 主动买入的成交额(标的数量)
"B":"0" // 忽略此参数
}
}
K线stream逐秒推送所请求的K线种类(最新一根K线)的更新。
合约类型: * PERPETUAL 永续合约 * CURRENT_QUARTER 当季交割合约 * NEXT_QUARTER 次季交割合约
订阅Kline需要提供间隔参数,最短为分钟线,最长为月线。支持以下间隔:
m -> 分钟; h -> 小时; d -> 天; w -> 周; M -> 月
- 1m
- 3m
- 5m
- 15m
- 30m
- 1h
- 2h
- 4h
- 6h
- 8h
- 12h
- 1d
- 3d
- 1w
- 1M
Stream Name:
<pair>_<contractType>@continuousKline_<interval>
例如: "btcusd_next_quarter@continuousKline_1m"
Update Speed: 250ms
价格指数K线
Payload:
{
"e":"indexPrice_kline", // 事件类型
"E":1591267070033, // 事件时间
"ps":"BTCUSD", // 标的交易对
"k":{
"t":1591267020000, // 这根K线的起始时间
"T":1591267079999, // 这根K线的结束时间
"s":"0", // 无意义字段
"i":"1m", // K线间隔
"f":1591267020000, // 无意义字段
"L":1591267070000, // 无意义字段
"o":"9542.21900000", // 这根K线期间第一笔成交价
"c":"9542.50440000", // 这根K线期间末一笔成交价
"h":"9542.71640000", // 这根K线期间最高成交价
"l":"9542.21040000", // 这根K线期间最低成交价
"v":"0", // 无意义字段
"n":51, // 这根K线更新期间数据数量
"x":false, // 这根K线是否完结(是否已经开始下一根K线)
"q":"0", // 无意义字段
"V":"0", // 无意义字段
"Q":"0", // 无意义字段
"B":"0" // 无意义字段
}
}
K线stream逐秒推送所请求的K线种类(最新一根K线)的更新。
订阅Kline需要提供间隔参数,最短为分钟线,最长为月线。支持以下间隔:
m -> 分钟; h -> 小时; d -> 天; w -> 周; M -> 月
- 1m
- 3m
- 5m
- 15m
- 30m
- 1h
- 2h
- 4h
- 6h
- 8h
- 12h
- 1d
- 3d
- 1w
- 1M
Stream Name:
<pair>@indexPriceKline_<interval>
例如: btcusd@indexPriceKline_1m
Update Speed: 250ms
标记价格K线
Payload:
{
"e":"markPrice_kline", // 事件类型
"E":1591267398004, // 事件时间
"ps":"BTCUSD", // 标的交易对
"k":{
"t":1591267380000, // 这根K线的起始时间
"T":1591267439999, // 这根K线的结束时间
"s":"BTCUSD_200626", // 交易对
"i":"1m", // K线间隔
"f":1591267380000, // 无意义字段
"L":1591267398000, // 无意义字段
"o":"9539.67161333", // 这根K线期间第一笔成交价
"c":"9540.82761333", // 这根K线期间末一笔成交价
"h":"9540.82761333", // 这根K线期间最高成交价
"l":"9539.66961333", // 这根K线期间最低成交价
"v":"0", // 无意义字段
"n":19, // 这根K线更新期间数据数量
"x":false, // 这根K线是否完结(是否已经开始下一根K线)
"q":"0", // 无意义字段
"V":"0", // 无意义字段
"Q":"0", // 无意义字段
"B":"0" // 无意义字段
}
}
K线stream逐秒推送所请求的K线种类(最新一根K线)的更新。
订阅Kline需要提供间隔参数,最短为分钟线,最长为月线。支持以下间隔:
m -> 分钟; h -> 小时; d -> 天; w -> 周; M -> 月
- 1m
- 3m
- 5m
- 15m
- 30m
- 1h
- 2h
- 4h
- 6h
- 8h
- 12h
- 1d
- 3d
- 1w
- 1M
Stream Name:
<symbol>@markPriceKline_<interval>
例如: btcusd_200626@markPriceKline_1m
Update Speed: 250ms
按Symbol的精简Ticker
Payload:
{
"e":"24hrMiniTicker", // 事件类型
"E":1591267704450, // 事件时间
"s":"BTCUSD_200626", // 交易对
"ps":"BTCUSD", // 标的交易对
"c":"9561.7", // 最新成交价格
"o":"9580.9", // 24小时前开始第一笔成交价格
"h":"10000.0", // 24小时内最高成交价
"l":"7000.0", // 24小时内最低成交价
"v":"487476", // 24小时成交量
"q":"33264343847.22378500" // 24小时成交额(标的数量
}
按Symbol刷新的24小时精简ticker信息.
Stream Name:
`<symbol>@miniTicker
Update Speed: 500ms
全市场的精简Ticker
Payload:
[
{
"e":"24hrMiniTicker", // 事件类型
"E":1591267704450, // 事件时间
"s":"BTCUSD_200626", // 交易对
"ps":"BTCUSD", // 标的交易对
"c":"9561.7", // 最新成交价格
"o":"9580.9", // 24小时前开始第一笔成交价格
"h":"10000.0", // 24小时内最高成交价
"l":"7000.0", // 24小时内最低成交价
"v":"487476", // 24小时成交量
"q":"33264343847.22378500" // 24小时成交额(标的数量
}
]
所有symbol24小时精简ticker信息.需要注意的是,只有发生变化的ticker更新才会被推送。
Stream Name:
!miniTicker@arr
Update Speed: 1000ms
按Symbol的完整Ticker
Payload:
{
"e":"24hrTicker", // 事件类型
"E":1591268262453, // 事件时间
"s":"BTCUSD_200626", // 交易对
"ps":"BTCUSD", // 标的交易对
"p":"-43.4", // 24小时价格变化
"P":"-0.452", // 24小时价格变化(百分比)
"w":"0.00147974", // 24小时平均价格
"c":"9548.5", // 最新成交价格
"Q":"2", // 最新成交价格上的成交量
"o":"9591.9", // 24小时前第一笔成交价格
"h":"10000.0", // 24小时内最高成交价
"l":"7000.0", // 24小时内最低成交价
"v":"487850", // 24小时成交量
"q":"32968676323.46222700", // 24小时成交额(标的数量)
"O":1591181820000, // 统计开始时间
"C":1591268262442, // 统计关闭时间
"F":512014, // 24小时内第一笔成交交易ID
"L":615289, // 24小时内最后一笔成交交易ID
"n":103272 // 24小时内成交数
}
按Symbol刷新的24小时完整ticker信息.
Stream Name:
<symbol>@ticker
Update Speed: 500ms
全市场的完整Ticker
Payload:
[
{
"e":"24hrTicker", // 事件类型
"E":1591268262453, // 事件时间
"s":"BTCUSD_200626", // 交易对
"ps":"BTCUSD", // 标的交易对
"p":"-43.4", // 24小时价格变化
"P":"-0.452", // 24小时价格变化(百分比)
"w":"0.00147974", // 24小时平均价格
"c":"9548.5", // 最新成交价格
"Q":"2", // 最新成交价格上的成交量
"o":"9591.9", // 24小时前第一笔成交价格
"h":"10000.0", // 24小时内最高成交价
"l":"7000.0", // 24小时内最低成交价
"v":"487850", // 24小时成交量
"q":"32968676323.46222700", // 24小时成交额(标的数量)
"O":1591181820000, // 统计开始时间
"C":1591268262442, // 统计关闭时间
"F":512014, // 24小时内第一笔成交交易ID
"L":615289, // 24小时内最后一笔成交交易ID
"n":103272 // 24小时内成交数
}
]
所有symbol 24小时完整ticker信息.需要注意的是,只有发生变化的ticker更新才会被推送。
Stream 名称:
!ticker@arr
Update Speed: 1000ms
按Symbol的最优挂单信息
Payload:
{
"e":"bookTicker", // 事件类型
"u":17242169, // 更新ID
"s":"BTCUSD_200626", // 交易对
"ps":"BTCUSD", // 标的交易对
"b":"9548.1", // 买单最优挂单价格
"B":"52", // 买单最优挂单数量
"a":"9548.5", // 卖单最优挂单价格
"A":"11", // 卖单最优挂单数量
"T":1591268628155, // 撮合时间
"E":1591268628166 // 事件时间
}
实时推送指定交易对最优挂单信息
Stream Name: <symbol>@bookTicker
Update Speed: 实时
全市场最优挂单信息
Payload:
{
// Same as <symbol>@bookTicker payload
}
实时推送所有交易对交易对最优挂单信息
Stream Name: !bookTicker
Update Speed: 实时
强平订单
Payload:
{
"e":"forceOrder", // 事件类型
"E": 1591154240950, // 事件时间
"o":{
"s":"BTCUSD_200925", // 交易对
"ps": "BTCUSD", // 标的交易对
"S":"SELL", // 订单方向
"o":"LIMIT", // 订单类型
"f":"IOC", // 有效方式
"q":"1", // 订单数量
"p":"9425.5", // 订单价格
"ap":"9496.5", // 平均价格
"X":"FILLED", // 订单状态
"l":"1", // 订单最近成交量
"z":"1", // 订单累计成交量
"T": 1591154240949, // 交易时间
}
}
推送特定symbol
的强平订单信息
Stream Name: <symbol>@forceOrder
Update Speed: 实时
全市场强平订单
Payload:
{
"e":"forceOrder", // 事件类型
"E": 1591154240950, // 事件时间
"o":{
"s":"BTCUSD_200925", // 交易对
"ps": "BTCUSD", // 标的交易对
"S":"SELL", // 订单方向
"o":"LIMIT", // 订单类型
"f":"IOC", // 有效方式
"q":"1", // 订单数量
"p":"9425.5", // 订单价格
"ap":"9496.5", // 平均价格
"X":"FILLED", // 订单状态
"l":"1", // 订单最近成交量
"z":"1", // 订单累计成交量
"T": 1591154240949, // 交易时间
}
}
推送全市场强平订单信息
Stream Name: !forceOrder@arr
Update Speed: 实时
有限档深度信息
Payload:
{
"e":"depthUpdate", // 事件类型
"E":1591269996801, // 事件时间
"T":1591269996646, // 撮合时间
"s":"BTCUSD_200626", // 交易对
"ps":"BTCUSD", // 标的交易对
"U":17276694,
"u":17276701,
"pu":17276678,
"b":[ // 买方
[
"9523.0", // 价格
"5" // 数量
],
[
"9522.8",
"8"
],
[
"9522.6",
"2"
],
[
"9522.4",
"1"
],
[
"9522.0",
"5"
]
],
"a":[ // 卖方
[
"9524.6", // 价格
"2" // 数量
],
[
"9524.7",
"3"
],
[
"9524.9",
"16"
],
[
"9525.1",
"10"
],
[
"9525.3",
"6"
]
]
}
推送有限档深度信息。levels表示几档买卖单信息, 可选 5/10/20档
Stream Names: <symbol>@depth<levels>
或 <symbol>@depth<levels>@500ms
或 <symbol>@depth<levels>@100ms
.
Update Speed: 250ms 或 500ms 或 100ms
增量深度信息stream
Payload:
{
"e": "depthUpdate", // 事件类型
"E": 1591270260907, // 事件时间
"T": 1591270260891, // 撮合时间
"s": "BTCUSD_200626", // 交易对
"ps": "BTCUSD", // 标的交易对
"U": 17285681, // 从上次推送至今新增的第一个 update Id
"u": 17285702, // 从上次推送至今新增的最后一个 update Id
"pu": 17285675, // 上次推送的最后一个update Id(即上条消息的‘u’)
"b": [ // 变动的买单深度
[
"9517.6", // 价格
"10" // 数量
]
],
"a": [ // 变动的卖单深度
[
"9518.5", // 价格
"45" // 数量
]
]
}
orderbook的变化部分,推送间隔250毫秒,500毫秒,100毫秒(如有刷新)
Stream 名称:
<symbol>@depth
OR <symbol>@depth@500ms
OR <symbol>@depth@100ms
Update Speed: 250ms 或 500ms 或 100ms
如何正确在本地维护一个orderbook副本
- 订阅 wss://dstream.binancefuture.com/stream?streams=btcusd_200925@depth
- 开始缓存收到的更新。同一个价位,后收到的更新覆盖前面的。
- 访问Rest接口 https://testnet.binancefuture.com/dapi/v1/depth?symbol=BTCUSD_200925&limit=1000获得一个1000档的深度快照
- 将目前缓存到的信息中
u
< 步骤3中获取到的快照中的lastUpdateId
的部分丢弃(丢弃更早的信息,已经过期)。 - 将深度快照中的内容更新到本地orderbook副本中,并从websocket接收到的第一个
U
<=lastUpdateId
且u
>=lastUpdateId
的event开始继续更新本地副本。 - 每一个新event的
pu
应该等于上一个event的u
,否则可能出现了丢包,请从step3重新进行初始化。 - 每一个event中的挂单量代表这个价格目前的挂单量绝对值,而不是相对变化。
- 如果某个价格对应的挂单量为0,表示该价位的挂单已经撤单或者被吃,应该移除这个价位。
账户和交易接口
更改持仓模式(TRADE)
响应:
{
"code": 200,
"msg": "success"
}
POST /dapi/v1/positionSide/dual (HMAC SHA256)
变换用户在 所有symbol 合约上的持仓模式:双向持仓或单向持仓。
权重: 1
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
dualSidePosition | STRING | YES | "true": 双向持仓模式;"false": 单向持仓模式 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
查询持仓模式(USER_DATA)
响应:
{
"dualSidePosition": true // "true": 双向持仓模式;"false": 单向持仓模式
}
GET /dapi/v1/positionSide/dual (HMAC SHA256)
查询用户目前在 所有symbol 合约上的持仓模式:双向持仓或单向持仓。
权重: 30
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
recvWindow | LONG | NO | |
timestamp | LONG | YES |
下单 (TRADE)
响应:
{
"clientOrderId": "testOrder", // 用户自定义的订单号
"cumQty": "0",
"cumBase": "0", // 成交额(标的数量)
"executedQty": "0", // 成交量(张数)
"orderId": 22542179, // 系统订单号
"avgPrice": "0.0", // 平均成交价
"origQty": "10", // 原始委托数量
"price": "0", // 委托价格
"reduceOnly": false, // 仅减仓
"closePosition": false, // 是否条件全平仓
"side": "SELL", // 买卖方向
"positionSide": "SHORT", // 持仓方向
"status": "NEW", // 订单状态
"stopPrice": "0", // 触发价,对`TRAILING_STOP_MARKET`无效
"symbol": "BTCUSD_200925", // 交易对
"pair": "BTCUSD", // 标的交易对
"timeInForce": "GTC", // 有效方法
"type": "TRAILING_STOP_MARKET", // 订单类型
"origType": "TRAILING_STOP_MARKET", // 触发前订单类型
"activatePrice": "9020", // 跟踪止损激活价格, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"priceRate": "0.3", // 跟踪止损回调比例, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"updateTime": 1566818724722, // 更新时间
"workingType": "CONTRACT_PRICE", // 条件价格触发类型
"priceProtect": false // 是否开启条件单触发保护
}
POST /dapi/v1/order (HMAC SHA256)
权重: 1
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
side | ENUM | YES | 买卖方向 SELL , BUY |
positionSide | ENUM | NO | 持仓方向,单向持仓模式下非必填,默认且仅可填BOTH ;在双向持仓模式下必填,且仅可选择 LONG 或 SHORT |
type | ENUM | YES | 订单类型 LIMIT , MARKET , STOP , TAKE_PROFIT , STOP_MARKET , TAKE_PROFIT_MARKET , TRAILING_STOP_MARKET |
reduceOnly | STRING | NO | true , false ; 非双开模式下默认false ;双开模式下不接受此参数; 使用closePosition 不支持此参数。 |
quantity | DECIMAL | NO | 下单数量,使用closePosition 不支持此参数。 |
price | DECIMAL | NO | 委托价格 |
newClientOrderId | STRING | NO | 用户自定义的订单号,不可以重复出现在挂单中。如空缺系统会自动赋值 |
stopPrice | DECIMAL | NO | 触发价, 仅 STOP , STOP_MARKET , TAKE_PROFIT , TAKE_PROFIT_MARKET 需要此参数 |
closePosition | STRING | NO | true , false ;触发后全部平仓,仅支持STOP_MARKET 和TAKE_PROFIT_MARKET ;不与quantity 合用;自带只平仓效果,不与reduceOnly 合用 |
activationPrice | DECIMAL | NO | 追踪止损激活价格,仅TRAILING_STOP_MARKET 需要此参数, 默认为下单当前市场价格(支持不同workingType ) |
callbackRate | DECIMAL | NO | 追踪止损回调比例,可取值范围[0.1, 4],其中 1代表1% ,仅TRAILING_STOP_MARKET 需要此参数 |
timeInForce | ENUM | NO | 有效方法 |
workingType | ENUM | NO | stopPrice 触发类型: MARK_PRICE (标记价格), CONTRACT_PRICE (合约最新价). 默认 CONTRACT_PRICE |
priceProtect | STRING | NO | 条件单触发保护:"TRUE","FALSE", 默认"FALSE". 仅 STOP , STOP_MARKET , TAKE_PROFIT , TAKE_PROFIT_MARKET 需要此参数 |
newOrderRespType | ENUM | NO | "ACK", "RESULT", 默认 "ACK" |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
根据 order type
的不同,某些参数强制要求,具体如下:
Type | 强制要求的参数 |
---|---|
LIMIT |
timeInForce , quantity , price |
MARKET |
quantity |
STOP , TAKE_PROFIT |
quantity , price , stopPrice |
STOP_MARKET , TAKE_PROFIT_MARKET |
stopPrice |
TRAILING_STOP_MARKET |
callbackRate |
条件单的触发必须:
- 如果订单参数
priceProtect
为true:- 达到触发价时,
MARK_PRICE
(标记价格)与CONTRACT_PRICE
(合约最新价)之间的价差不能超过改symbol触发保护阈值 - 触发保护阈值请参考接口
GET /dapi/v1/exchangeInfo
返回内容相应symbol中"triggerProtect"字段
- 达到触发价时,
STOP
,STOP_MARKET
止损单:- 买入: 最新合约价格/标记价格高于等于触发价
stopPrice
- 卖出: 最新合约价格/标记价格低于等于触发价
stopPrice
- 买入: 最新合约价格/标记价格高于等于触发价
TAKE_PROFIT
,TAKE_PROFIT_MARKET
止盈单:- 买入: 最新合约价格/标记价格低于等于触发价
stopPrice
- 卖出: 最新合约价格/标记价格高于等于触发价
stopPrice
- 买入: 最新合约价格/标记价格低于等于触发价
TRAILING_STOP_MARKET
跟踪止损单:- 买入: 当合约价格/标记价格区间最低价格低于激活价格
activationPrice
,且最新合约价格/标记价高于等于最低价设定回调幅度。 - 卖出: 当合约价格/标记价格区间最高价格高于激活价格
activationPrice
,且最新合约价格/标记价低于等于最高价设定回调幅度。
- 买入: 当合约价格/标记价格区间最低价格低于激活价格
- 如果订单参数
TRAILING_STOP_MARKET
跟踪止损单如果遇到报错{"code": -2021, "msg": "Order would immediately trigger."}
表示订单不满足以下条件:- 买入: 指定的
activationPrice
必须小于 latest price - 卖出: 指定的
activationPrice
必须大于 latest price
- 买入: 指定的
newOrderRespType
如果传RESULT
:MARKET
订单将直接返回成交结果;- 配合使用特殊
timeInForce
的LIMIT
订单将直接返回成交或过期拒绝结果。
STOP_MARKET
,TAKE_PROFIT_MARKET
配合closePosition
=true
:- 条件单触发依照上述条件单触发逻辑
- 条件触发后,平掉当时持有所有多头仓位(若为卖单)或当时持有所有空头仓位(若为买单)
- 不支持
quantity
参数 - 自带只平仓属性,不支持
reduceOnly
参数 - 双开模式下,
LONG
方向上不支持BUY
;SHORT
方向上不支持SELL
测试下单接口 (TRADE)
响应:
{}
POST /dapi/v1/order/test (HMAC SHA256)
用于测试订单请求,但不会提交到撮合引擎
权重: 1
参数:
参考 POST /dapi/v1/order
批量下单 (TRADE)
响应:
[
{
"clientOrderId": "testOrder", // 用户自定义的订单号
"cumQty": "0",
"cumBase": "0", // 成交金额(标的数量)
"executedQty": "0", // 成交量(张数)
"orderId": 22542179, // 系统订单号
"avgPrice": "0.0", // 平均成交价
"origQty": "10", // 原始委托数量
"price": "0", // 委托价格
"reduceOnly": false, // 仅减仓
"side": "SELL", // 买卖方向
"positionSide": "SHORT", // 持仓方向
"status": "NEW", // 订单状态
"stopPrice": "0", // 触发价,对`TRAILING_STOP_MARKET`无效
"closePosition": false, // 是否条件全平仓
"symbol": "BTCUSD_200925", // 交易对
"pair": "BTCUSD", // 标的交易对
"timeInForce": "GTC", // 有效方法
"type": "TRAILING_STOP_MARKET", // 订单类型
"origType": "TRAILING_STOP_MARKET", // 触发前订单类型
"activatePrice": "9020", // 跟踪止损激活价格, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"priceRate": "0.3", // 跟踪止损回调比例, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"updateTime": 1566818724722, // 更新时间
"workingType": "CONTRACT_PRICE", // 条件价格触发类型
"priceProtect": false // 是否开启条件单触发保护
},
{
"code": -2022,
"msg": "ReduceOnly Order is rejected."
}
]
POST /dapi/v1/batchOrders (HMAC SHA256)
权重: 5
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
batchOrders | list |
YES | 订单列表,最多支持5个订单 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
其中batchOrders
应以list of JSON格式填写订单参数
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
side | ENUM | YES | 买卖方向 SELL , BUY |
positionSide | ENUM | NO | 持仓方向,单向持仓模式下非必填,默认且仅可填BOTH ;在双向持仓模式下必填,且仅可选择 LONG 或 SHORT |
type | ENUM | YES | 订单类型 LIMIT , MARKET , STOP , TAKE_PROFIT , STOP_MARKET , TAKE_PROFIT_MARKET , TRAILING_STOP_MARKET |
reduceOnly | STRING | NO | true , false ; 非双开模式下默认false ;双开模式下不接受此参数。 |
quantity | DECIMAL | YES | 下单数量 |
price | DECIMAL | NO | 委托价格 |
newClientOrderId | STRING | NO | 用户自定义的订单号,不可以重复出现在挂单中。如空缺系统会自动赋值 |
stopPrice | DECIMAL | NO | 触发价, 仅 STOP , STOP_MARKET , TAKE_PROFIT , TAKE_PROFIT_MARKET 需要此参数 |
activationPrice | DECIMAL | NO | 追踪止损激活价格,仅TRAILING_STOP_MARKET 需要此参数, 默认为下单当前市场价格(支持不同workingType ) |
callbackRate | DECIMAL | NO | 追踪止损回调比例,可取值范围[0.1, 4],其中 1代表1% ,仅TRAILING_STOP_MARKET 需要此参数 |
timeInForce | ENUM | NO | 有效方法 |
workingType | ENUM | NO | stopPrice 触发类型: MARK_PRICE (标记价格), CONTRACT_PRICE (合约最新价). 默认 CONTRACT_PRICE |
priceProtect | STRING | NO | 条件单触发保护:"TRUE","FALSE", 默认"FALSE". 仅 STOP , STOP_MARKET , TAKE_PROFIT , TAKE_PROFIT_MARKET 需要此参数 |
newOrderRespType | ENUM | NO | "ACK", "RESULT", 默认 "ACK" |
- 具体订单条件规则,与普通下单一致
- 批量下单采取并发处理,不保证订单撮合顺序
- 批量下单的返回内容顺序,与订单列表顺序一致
查询订单 (USER_DATA)
响应:
{
"avgPrice": "0.0", // 平均成交价
"clientOrderId": "abc", // 用户自定义的订单号
"cumBase": "0", // 成交金额(标的数量)
"executedQty": "0", // 成交量(张数)
"orderId": 1573346959, // 系统订单号
"origQty": "0.40", // 原始委托数量
"origType": "TRAILING_STOP_MARKET", // 触发前订单类型
"price": "0", // 委托价格
"reduceOnly": false, // 是否仅减仓
"side": "BUY", // 买卖方向
"positionSide": "SHORT", // 持仓方向
"status": "NEW", // 订单状态
"stopPrice": "9300", // 触发价,对`TRAILING_STOP_MARKET`无效
"closePosition": false, // 是否条件全平仓
"symbol": "BTCUSD_200925", // 交易对
"pair": "BTCUSD", // 标的交易对
"time": 1579276756075, // 订单时间
"timeInForce": "GTC", // 有效方法
"type": "TRAILING_STOP_MARKET", // 订单类型
"activatePrice": "9020", // 跟踪止损激活价格, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"priceRate": "0.3", // 跟踪止损回调比例, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"updateTime": 1579276756075, // 更新时间
"workingType": "CONTRACT_PRICE", // 条件价格触发类型
"priceProtect": false // 是否开启条件单触发保护
}
GET /dapi/v1/order (HMAC SHA256)
查询订单状态
权重: 1
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
orderId | LONG | NO | 系统订单号 |
origClientOrderId | STRING | NO | 用户自定义的订单号 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
注意:
- 至少需要发送
orderId
与origClientOrderId
中的一个
撤销订单 (TRADE)
响应:
{
"avgPrice": "0.0", // 平均成交价
"clientOrderId": "myOrder1", // 用户自定义的订单号
"cumQty": "0",
"cumBase": "0", // 成交金额(标的数量)
"executedQty": "0", // 成交量(张数)
"orderId": 283194212, // 系统订单号
"origQty": "11", // 原始委托数量
"price": "0", // 委托价格
"reduceOnly": false, // 仅减仓
"side": "BUY", // 买卖方向
"positionSide": "SHORT", // 持仓方向
"status": "CANCELED", // 订单状态
"stopPrice": "9300", // 触发价,对`TRAILING_STOP_MARKET`无效
"closePosition": false, // 是否条件全平仓
"symbol": "BTCUSD_200925", // 交易对
"pair": "BTCUSD", // 标的交易对
"timeInForce": "GTC", // 有效方法
"origType": "TRAILING_STOP_MARKET", // 触发前订单类型
"type": "TRAILING_STOP_MARKET", // 订单类型
"activatePrice": "9020", // 跟踪止损激活价格, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"priceRate": "0.3", // 跟踪止损回调比例, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"updateTime": 1571110484038, // 更新时间
"workingType": "CONTRACT_PRICE", // 条件价格触发类型
"priceProtect": false // 是否开启条件单触发保护
}
DELETE /dapi/v1/order (HMAC SHA256)
权重: 1
Parameters:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
orderId | LONG | NO | 系统订单号 |
origClientOrderId | STRING | NO | 用户自定义的订单号 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
orderId
与 origClientOrderId
必须至少发送一个
撤销全部订单 (TRADE)
响应:
{
"code": "200",
"msg": "The operation of cancel all open order is done."
}
DELETE /dapi/v1/allOpenOrders (HMAC SHA256)
权重: 1
Parameters:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
批量撤销订单 (TRADE)
响应:
[
{
"avgPrice": "0.0", // 平均成交价
"clientOrderId": "myOrder1", // 用户自定义的订单号
"cumQty": "0",
"cumBase": "0", // 成交金额(标的数量)
"executedQty": "0", // 成交量(张数)
"orderId": 283194212, // 系统订单号
"origQty": "11", // 原始委托数量
"price": "0", // 委托价格
"reduceOnly": false, // 仅减仓
"side": "BUY", // 买卖方向
"positionSide": "SHORT", // 持仓方向
"status": "CANCELED", // 订单状态
"stopPrice": "9300", // 触发价,对`TRAILING_STOP_MARKET`无效
"closePosition": false, // 是否条件全平仓
"symbol": "BTCUSD_200925", // 交易对
"pair": "BTCUSD", // 标的交易对
"timeInForce": "GTC", // 有效方法
"origType": "TRAILING_STOP_MARKET", // 触发前订单类型
"type": "TRAILING_STOP_MARKET", // 订单类型
"activatePrice": "9020", // 跟踪止损激活价格, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"priceRate": "0.3", // 跟踪止损回调比例, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"workingType": "CONTRACT_PRICE", // 条件价格触发类型
"priceProtect": false, // 是否开启条件单触发保护
"updateTime": 1571110484038 // 更新时间
},
{
"code": -2011,
"msg": "Unknown order sent."
}
]
DELETE /dapi/v1/batchOrders (HMAC SHA256)
权重: 1
Parameters:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
orderIdList | LIST<LONG> | NO | 系统订单号, 最多支持10个订单 比如 [1234567,2345678] |
origClientOrderIdList | LIST<STRING> | NO | 用户自定义的订单号, 最多支持10个订单 比如 ["my_id_1","my_id_2"] 需要encode双引号。逗号后面没有空格。 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
orderIdList
与 origClientOrderIdList
必须至少发送一个,不可同时发送
倒计时撤销所有订单 (TRADE)
响应:
{
"symbol": "BTCUSD_200925",
"countdownTime": "100000"
}
POST /dapi/v1/countdownCancelAll (HMAC SHA256)
权重: 10
Parameters:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | |
countdownTime | LONG | YES | 倒计时。 1000 表示 1 秒; 0 表示取消倒计时撤单功能。 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
该接口可以被用于确保在发生故障时撤销指定symbol上的所有挂单。 在使用这个功能时,接口应像心跳一样在倒计时内被反复调用,以便可以取消既有的倒计时并开始新的倒数计时设置。
用法示例: 以30s的间隔重复此接口,每次倒计时countdownTime设置为120000(120s)。
如果在120秒内未再次调用此接口,则您指定symbol上的所有挂单都会被自动撤销。
如果在120秒内以将countdownTime设置为0,则倒数计时器将终止,自动撤单功能取消。系统会大约每10毫秒检查一次所有倒计时情况,因此请注意,使用此功能时应考虑足够的冗余。
我们不建议将倒记时设置得太精确或太小。
查询当前挂单 (USER_DATA)
响应:
{
"avgPrice": "0.0", // 平均成交价
"clientOrderId": "abc", // 用户自定义的订单号
"cumBase": "0", // 成交金额(标的数量)
"executedQty": "0", // 成交量(张数)
"orderId": 1917641, // 系统订单号
"origQty": "0.40", // 原始委托数量
"origType": "TRAILING_STOP_MARKET", // 触发前订单类型
"price": "0", // 委托价格
"reduceOnly": false, // 是否仅减仓
"side": "BUY", // 买卖方向
"status": "NEW", // 订单状态
"stopPrice": "9300", // 触发价,对`TRAILING_STOP_MARKET`无效
"closePosition": false, // 是否条件全平仓
"symbol": "BTCUSD_200925", // 交易对
"pair": "BTCUSD", // 标的交易对
"time": 1579276756075, // 订单时间
"timeInForce": "GTC", // 有效方法
"type": "TRAILING_STOP_MARKET", // 订单类型
"activatePrice": "9020", // 跟踪止损激活价格, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"priceRate": "0.3", // 跟踪止损回调比例, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"updateTime": 1579276756075, // 更新时间
"workingType": "CONTRACT_PRICE", // 条件价格触发类型
"priceProtect": false // 是否开启条件单触发保护
}
GET /dapi/v1/openOrder (HMAC SHA256)
请小心使用不带symbol参数的调用
权重: 1*
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
orderId | LONG | NO | 系统订单号 |
origClientOrderId | STRING | NO | 用户自定义的订单号 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
orderId
与origClientOrderId
中的一个为必填参数- 查询的订单如果已经成交或取消,将返回报错"Order does not exist."
查看当前全部挂单 (USER_DATA)
响应:
[
{
"avgPrice": "0.0", // 平均成交价
"clientOrderId": "abc", // 用户自定义的订单号
"cumBase": "0", // 成交金额(标的数量)
"executedQty": "0", // 成交量(张数)
"orderId": 1917641, // 系统订单号
"origQty": "0.40", // 原始委托数量
"origType": "TRAILING_STOP_MARKET", // 触发前订单类型
"price": "0", // 委托价格
"reduceOnly": false, // 是否仅减仓
"side": "BUY", // 买卖方向
"positionSide": "SHORT", // 持仓方向
"status": "NEW", // 订单状态
"stopPrice": "9300", // 触发价,对`TRAILING_STOP_MARKET`无效
"closePosition": false, // 是否条件全平仓
"symbol": "BTCUSD_200925", // 交易对
"pair": "BTCUSD", // 标的交易对
"time": 1579276756075, // 订单时间
"timeInForce": "GTC", // 有效方法
"type": "TRAILING_STOP_MARKET", // 订单类型
"activatePrice": "9020", // 跟踪止损激活价格, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"priceRate": "0.3", // 跟踪止损回调比例, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"updateTime": 1579276756075, // 更新时间
"workingType": "CONTRACT_PRICE", // 条件价格触发类型
"priceProtect": false // 是否开启条件单触发保护
}
]
GET /dapi/v1/openOrders (HMAC SHA256)
请小心使用不带symbol参数的调用
权重:
- 带symbol 1
- 不带symbol 5
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | NO | 交易对 |
pair | STRING | NO | 标的交易对 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
查询所有订单(包括历史订单) (USER_DATA)
响应:
[
{
"avgPrice": "0.0", // 平均成交价
"clientOrderId": "abc", // 用户自定义的订单号
"cumBase": "0", // 成交金额(标的数量)
"executedQty": "0", // 成交量(张数)
"orderId": 1917641, // 系统订单号
"origQty": "0.40", // 原始委托数量
"origType": "TRAILING_STOP_MARKET", // 触发前订单类型
"price": "0", // 委托价格
"reduceOnly": false, // 是否仅减仓
"side": "BUY", // 买卖方向
"positionSide": "SHORT", // 持仓方向
"status": "NEW", // 订单状态
"stopPrice": "9300", // 触发价,对`TRAILING_STOP_MARKET`无效
"closePosition": false, // 是否条件全平仓
"symbol": "BTCUSD_200925", // 交易对
"pair": "BTCUSD", // 标的交易对
"time": 1579276756075, // 订单时间
"timeInForce": "GTC", // 有效方法
"type": "TRAILING_STOP_MARKET", // 订单类型
"activatePrice": "9020", // 跟踪止损激活价格, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"priceRate": "0.3", // 跟踪止损回调比例, 仅`TRAILING_STOP_MARKET` 订单返回此字段
"updateTime": 1579276756075, // 更新时间
"workingType": "CONTRACT_PRICE" // 条件价格触发类型
}
]
GET /dapi/v1/allOrders (HMAC SHA256)
权重:
传symbol 20
传pairs 40
Parameters:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | NO | 交易对 |
pair | STRING | NO | 标的交易对 |
orderId | LONG | NO | 只返回此orderID及之后的订单,缺省返回最近的订单, 仅支持配合symbol使用 |
startTime | LONG | NO | 起始时间 |
endTime | LONG | NO | 结束时间 |
limit | INT | NO | 返回的结果集数量 默认值:50 最大值:100 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
- symbol 或 pair 必须传一个,不能同时传
账户余额 (USER_DATA)
响应:
[
{
"accountAlias": "SgsR", // 账户唯一识别码
"asset": "BTC", // 资产
"balance": "0.00250000", // 账户余额
"withdrawAvailable": "0.00250000", // 最大可提款金额,同`GET /dapi/account`中"maxWithdrawAmount"
"crossWalletBalance": "0.00241969", // 全仓账户余额
"crossUnPnl": "0.00000000", // 全仓持仓未实现盈亏
"availableBalance": "0.00241969", // 可用下单余额
"updateTime": 1592468353979
}
]
GET /dapi/v1/balance (HMAC SHA256)
Weight: 1
Parameters:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
recvWindow | LONG | NO | |
timestamp | LONG | YES |
账户信息 (USER_DATA)
响应:
{
"assets": [ // 资产内容
{
"asset": "BTC", // 资产名
"walletBalance": "0.00241969", // 账户余额
"unrealizedProfit": "0.00000000", // 全部持仓未实现盈亏
"marginBalance": "0.00241969", // 保证金余额
"maintMargin": "0.00000000", // 维持保证金
"initialMargin": "0.00000000", // 当前所需起始保证金(按最新标标记价格)
"positionInitialMargin": "0.00000000", // 当前所需持仓起始保证金(按最新标标记价格)
"openOrderInitialMargin": "0.00000000", // 当前所需挂单起始保证金(按最新标标记价格)
"maxWithdrawAmount": "0.00241969", // 最大可提款金额
"crossWalletBalance": "0.00241969", // 可用于全仓的账户余额
"crossUnPnl": "0.00000000", // 所有全仓持仓的未实现盈亏
"availableBalance": "0.00241969" // 可用下单余额
}
],
"positions": [ // 头寸
{
"symbol": "BTCUSD_201225", // 交易对
"initialMargin": "0", // 当前所需起始保证金(按最新标标记价格)
"maintMargin": "0", // 持仓维持保证金
"unrealizedProfit": "0.00000000", // 持仓未实现盈亏
"positionInitialMargin": "0", // 当前所需持仓起始保证金(按最新标标记价格)
"openOrderInitialMargin": "0", // 当前所需挂单起始保证金(按最新标标记价格)
"leverage": "125", // 杠杆倍率
"isolated": false, // 是否是逐仓模式
"positionSide": "BOTH", // 持仓方向
"entryPrice": "0.0", // 平均持仓成本
"maxQty": "50" // 当前杠杆下最大可开仓数(标的数量)
},
{
"symbol": "BTCUSD_201225",
"initialMargin": "0",
"maintMargin": "0",
"unrealizedProfit": "0.00000000",
"positionInitialMargin": "0",
"openOrderInitialMargin": "0",
"leverage": "125",
"isolated": false,
"positionSide": "LONG",
"entryPrice": "0.0",
"maxQty": "50"
},
{
"symbol": "BTCUSD_201225",
"initialMargin": "0",
"maintMargin": "0",
"unrealizedProfit": "0.00000000",
"positionInitialMargin": "0",
"openOrderInitialMargin": "0",
"leverage": "125",
"isolated": false,
"positionSide": "SHORT",
"entryPrice": "0.0",
"maxQty": "50"
}
],
"canDeposit": true, // 是否可以入金
"canTrade": true, // 是否可以交易
"canWithdraw": true, // 是否可以出金
"feeTier": 2, // 手续费等级
"updateTime": 0
}
GET /dapi/v1/account (HMAC SHA256)
权重: 5
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
recvWindow | LONG | NO | |
timestamp | LONG | YES |
- 对于单向持仓模式,"positions"仅会展示"BOTH"方向的持仓
- 对于双向持仓模式,"positions"会展示所有"BOTH", "LONG", 和"SHORT"方向的持仓
调整开仓杠杆 (TRADE)
响应:
{
"leverage": 21, // 杠杆倍数
"maxQty": "1000", // 当前杠杆倍数下允许的最大base asset数量
"symbol": "BTCUSD_200925" // 交易对
}
POST /dapi/v1/leverage (HMAC SHA256)
调整用户在指定symbol合约的开仓杠杆。不同持仓方向上使用相同杠杆倍数,共享允许的最大交易标的资产数量。
权重: 1
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
leverage | INT | YES | 目标杠杆倍数 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
变换逐全仓模式 (TRADE)
响应:
{
"code": 200,
"msg": "success"
}
POST /dapi/v1/marginType (HMAC SHA256)
变换用户在指定symbol合约上的保证金模式:逐仓或全仓。
不同持仓方向上使用相同的保证金模式。双向持仓模式下的逐仓,LONG
与 SHORT
使用独立的逐仓仓位。
权重: 1
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
marginType | ENUM | YES | 保证金模式 ISOLATED(逐仓), CROSSED(全仓) |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
调整逐仓保证金 (TRADE)
响应:
{
"amount": 100.0,
"code": 200,
"msg": "Successfully modify position margin.",
"type": 1
}
POST /dapi/v1/positionMargin (HMAC SHA256)
针对逐仓模式下的仓位,调整其逐仓保证金资金。
权重: 1
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
positionSide | ENUM | NO | 持仓方向,单向持仓模式下非必填,默认且仅可填BOTH ;在双向持仓模式下必填,且仅可选择 LONG 或 SHORT |
amount | DECIMAL | YES | 保证金资金 |
type | INT | YES | 调整方向 1: 增加逐仓保证金,2: 减少逐仓保证金 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
- 只针对逐仓symbol 与 positionSide(如有)
逐仓保证金变动历史 (TRADE)
响应:
[
{
"amount": "23.36332311", // 数量
"asset": "BTC", // 资产
"symbol": "BTCUSD_200925", // 交易对
"time": 1578047897183, // 时间
"type": 1, // 调整方向
"positionSide": "BOTH" // 持仓方向
},
{
"amount": "100",
"asset": "BTC",
"symbol": "BTCUSD_200925",
"time": 1578047900425,
"type": 1,
"positionSide": "LONG"
}
]
GET /dapi/v1/positionMargin/history (HMAC SHA256)
权重: 1
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | 交易对 |
type | INT | NO | 调整方向 1: 增加逐仓保证金,2: 减少逐仓保证金 |
startTime | LONG | NO | 起始时间 |
endTime | LONG | NO | 结束时间 |
limit | INT | NO | 返回的结果集数量 默认值: 50 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
用户持仓风险
响应:
[
{
"symbol": "BTCUSD_201225", // 交易对
"positionAmt": "0", // 头寸数量,符号代表多空方向, 正数为多,负数为空
"entryPrice": "0.0", // 开仓均价
"markPrice": "0.00000000", // 当前标记价格
"unRealizedProfit": "0.00000000", // 持仓未实现盈亏
"liquidationPrice": "0", // 参考强平价格
"leverage": "125", // 当前杠杆倍数
"maxQty": "50", // 当前杠杆倍数允许的数量上限(标的数量)
"marginType": "cross", // 逐仓模式或全仓模式
"isolatedMargin": "0.00000000", // 逐仓保证金
"isAutoAddMargin": "false",
"positionSide": "BOTH" // 持仓方向
},
{
"symbol": "BTCUSD_201225",
"positionAmt": "1",
"entryPrice": "11707.70000003",
"markPrice": "11788.66626667",
"unRealizedProfit": "0.00005866",
"liquidationPrice": "11667.63509587",
"leverage": "125",
"maxQty": "50",
"marginType": "cross",
"isolatedMargin": "0.00012357",
"isAutoAddMargin": "false",
"positionSide": "LONG"
},
{
"symbol": "BTCUSD_201225",
"positionAmt": "0",
"entryPrice": "0.0",
"markPrice": "0.00000000",
"unRealizedProfit": "0.00000000",
"liquidationPrice": "0",
"leverage": "125",
"maxQty": "50",
"marginType": "cross",
"isolatedMargin": "0.00000000",
"isAutoAddMargin": "false",
"positionSide": "SHORT"
}
]
GET /dapi/v1/positionRisk (HMAC SHA256)
权重: 1
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
marginAsset | STRING | NO | |
pair | STRING | NO | |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
- marginAsset 和 pair 不要同时提供
- marginAsset 和 pair 均不提供则返回所有上市状态和结算中的symbol
- 对于单向持仓模式,仅会展示"BOTH"方向的持仓
- 对于双向持仓模式,会展示所有"BOTH", "LONG", 和"SHORT"方向的持仓
注意
请与账户推送信息ACCOUNT_UPDATE
配合使用,以满足您的及时性和准确性需求。
账户成交历史 (USER_DATA)
响应:
[
{
'symbol': 'BTCUSD_200626', // 交易对
'id': 6, // 交易ID
'orderId': 28, // 订单ID
'pair': 'BTCUSD', // 标的交易对
'side': 'SELL', // 买卖方向
'price': '8800', // 成交价
'qty': '1', // 成交量(张数)
'realizedPnl': '0', // 实现盈亏
'marginAsset': 'BTC', // 保证金币种
'baseQty': '0.01136364', // 成交额(标的数量)
'commission': '0.00000454', // 手续费
'commissionAsset': 'BTC', // 手续费单位
'time': 1590743483586, // 时间
'positionSide': 'BOTH', // 持仓方向
'buyer': false, // 是否是买方
'maker': false // 是否是挂单方
}
]
GET /dapi/v1/userTrades (HMAC SHA256)
获取成交历史
权重:
传symbol 20
传pairs 40
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | NO | 交易对 |
pair | STRING | NO | 标的交易对 |
startTime | LONG | NO | 起始时间 |
endTime | LONG | NO | 结束时间 |
fromId | LONG | NO | 返回该fromId及之后的成交,缺省返回最近的成交,仅支持配合symbol使用 |
limit | INT | NO | 返回的结果集数量 默认值:50 最大值:100. |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
- symbol 或 pair 其中一个必传
- symbol 和 pair 不可同时提供
- fromId 和 pair 不可同时提供
获取账户损益资金流水(USER_DATA)
响应:
[
{
"symbol": "", // 交易对,仅针对涉及交易对的资金流
"incomeType": "TRANSFER", // 资金流类型
"income": "-0.37500000", // 资金流数量,正数代表流入,负数代表流出
"asset": "BTC", // 资产内容
"info":"WITHDRAW", // 备注信息,取决于流水类型
"time": 1570608000000, // 时间
"tranId":"9689322392", // 划转ID
"tradeId":"" // 引起流水产生的原始交易ID
},
{
"symbol": "BTCUSD_200925",
"incomeType": "COMMISSION",
"income": "-0.01000000",
"asset": "BTC",
"info":"",
"time": 1570636800000,
"tranId":"9689322392",
"tradeId":"2059192"
}
]
GET /dapi/v1/income (HMAC SHA256)
权重: 20
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | NO | 交易对 |
incomeType | STRING | NO | 收益类型 "TRANSFER", "FUNDING_FEE", "REALIZED_PNL", "COMMISSION", "INSURANCE_CLEAR", "DELIVERED_SETTELMENT" |
startTime | LONG | NO | 起始时间 |
endTime | LONG | NO | 结束时间 |
limit | INT | NO | 返回的结果集数量 默认值:100 最大值:1000 |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
如果
incomeType
没有发送,返回所有类型账户损益资金流水。"trandId" 在相同用户的同一种收益流水类型中是唯一的。
杠杆分层标准 (USER_DATA)
响应:
[
{
"pair": "BTCUSD",
"brackets": [
{
"bracket": 1, // 层级
"initialLeverage": 125, // 该层允许的最高初始杠杆倍数
"qtyCap": 50, // 该层对应的数量上限
"qtylFloor": 0, // 该层对应的数量下限
"maintMarginRatio": 0.004 // 该层对应的维持保证金率
},
]
}
]
GET /dapi/v1/leverageBracket
权重: 1
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
pair | STRING | NO | |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
用户强平单历史 (USER_DATA)
响应:
[
{
"orderId": 165123080,
"symbol": "BTCUSD_200925",
"pair": "BTCUSD",
"status": "FILLED",
"clientOrderId": "autoclose-1596542005017000006",
"price": "11326.9",
"avgPrice": "11326.9",
"origQty": "1",
"executedQty": "1",
"cumBase": "0.00882854",
"timeInForce": "IOC",
"type": "LIMIT",
"reduceOnly": false,
"closePosition": false,
"side": "SELL",
"positionSide": "BOTH",
"stopPrice": "0",
"workingType": "CONTRACT_PRICE",
"priceProtect": false,
"origType": "LIMIT",
"time": 1596542005019,
"updateTime": 1596542005050
},
{
"orderId": 207251986,
"symbol": "BTCUSD_200925",
"pair": "BTCUSD",
"status": "FILLED",
"clientOrderId": "autoclose-1597307316020000006",
"price": "11619.4",
"avgPrice": "11661.2",
"origQty": "1",
"executedQty": "1",
"cumBase": "0.00857544",
"timeInForce": "IOC",
"type": "LIMIT",
"reduceOnly": false,
"closePosition": false,
"side": "SELL",
"positionSide": "LONG",
"stopPrice": "0",
"workingType": "CONTRACT_PRICE",
"priceProtect": false,
"origType": "LIMIT",
"time": 1597307316022,
"updateTime": 1597307316035
}
]
GET /dapi/v1/forceOrders
权重: 20
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | NO | |
autoCloseType | ENUM | NO | "LIQUIDATION": 强平单, "ADL": ADL减仓单. |
startTime | LONG | NO | |
endTime | LONG | NO | |
limit | INT | NO | Default 50; max 100. |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
- 如果没有传 "autoCloseType", 强平单和ADL减仓单都会被返回
- 如果没有传"startTime", 只会返回"endTime"之前200天内的数据
持仓ADL队列估算 (USER_DATA)
响应:
[
{
"symbol": "BTCUSD_200925",
"adlQuantile":
{
// 对于全仓状态下的双向持仓模式的交易对,会返回 "LONG", "SHORT" 和 "HEDGE", 其中"HEDGE"的存在仅作为标记;如果多空均有持仓的情况下,"LONG"和"SHORT"应返回共同计算后相同的队列分数。
"LONG": 3,
"SHORT": 3,
"HEDGE": 0 // HEDGE 仅作为指示出现,请忽略数值
}
},
{
"symbol": "BTCUSD_201225",
"adlQuantile":
{
// 对于单向持仓模式或者是逐仓状态下的双向持仓模式的交易对,会返回 "LONG", "SHORT" 和 "BOTH" 分别表示不同持仓方向上持仓的adl队列分数
"LONG": 1, // 双开模式下多头持仓的ADL队列估算分
"SHORT": 2, // 双开模式下空头持仓的ADL队列估算分
"BOTH": 0 // 单开模式下持仓的ADL队列估算分
}
}
]
GET /dapi/v1/adlQuantile
用户手续费率 (USER_DATA)
响应:
{
"symbol": "BTCUSD_PERP",
"makerCommissionRate": "0.00015", // 0.015%
"takerCommissionRate": "0.00040" // 0.040%
}
GET /dapi/v1/commissionRate (HMAC SHA256)
权重: 20
参数:
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
symbol | STRING | YES | |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
Websocket 账户信息推送
- 本篇所列出REST接口的baseurl https://testnet.binancefuture.com
- 用于订阅账户数据的
listenKey
从创建时刻起有效期为60分钟 - 可以通过
PUT
一个listenKey
延长60分钟有效期 - 可以通过
DELETE
一个listenKey
立即关闭当前数据流,并使该listenKey
无效 - 在具有有效
listenKey
的帐户上执行POST
将返回当前有效的listenKey
并将其有效期延长60分钟 - 本篇所列出的websocket接口baseurl: wss://dstream.binancefuture.com
- 订阅账户数据流的stream名称为 /ws/<listenKey>
- 每个链接有效期不超过24小时,请妥善处理断线重连。
- 账户数据流的消息不保证严格时间序; 请使用 E 字段进行排序
生成listenKey (USER_STREAM)
响应:
{
"listenKey": "pqia91ma19a5s61cv6a81va65sdf19v8a65a1a5s61cv6a81va65sdf19v8a65a1"
}
POST /dapi/v1/listenKey
创建一个新的user data stream,返回值为一个listenKey,即websocket订阅的stream名称。如果该帐户具有有效的listenKey
,则将返回该listenKey
并将其有效期延长60分钟。
权重: 1
参数:
None
延长listenKey有效期 (USER_STREAM)
响应:
{}
PUT /dapi/v1/listenKey
有效期延长至本次调用后60分钟
权重: 1
参数:
None
关闭listenKey (USER_STREAM)
响应:
{}
DELETE /dapi/v1/listenKey
关闭某账户数据流
权重: 1
参数:
None
追加保证金通知
Payload:
{
"e":"MARGIN_CALL", // 事件类型
"E":1587727187525, // 事件时间
"i": "SfsR", // 账户唯一识别码 accountAlias
"cw":"3.16812045", // 除去逐仓仓位保证金的钱包余额, 仅在全仓 margin call 情况下推送此字段
"p":[ // 涉及持仓
{
"s":"BTCUSD_200925", // symbol
"ps":"LONG", // 持仓方向
"pa":"1", // 仓位
"mt":"CROSSED", // 保证金模式
"iw":"0", // 若为逐仓,仓位保证金
"mp":"9187.17127000", // 标记价格
"up":"-1.166074", // 未实现盈亏
"mm":"1.614445" // 持仓需要的维持保证金
}
]
}
- 当用户持仓风险过高,会推送此消息。
- 此消息仅作为风险指导信息,不建议用于投资策略。
- 在大波动市场行情下,不排除此消息发出的同时用户仓位已被强平的可能。
Balance和Position更新推送
Payload:
{
"e": "ACCOUNT_UPDATE", // 事件类型
"E": 1564745798939, // 事件时间
"T": 1564745798938, // 撮合时间
"i": "SfsR", // 账户唯一识别码 accountAlias
"a": // 账户更新事件
{
"m":"ORDER", // 事件推出原因
"B":[ // 余额信息
{
"a":"BTC", // 资产名称
"wb":"122624.12345678", // 钱包余额
"cw":"100.12345678" // 除去逐仓保证金的钱包余额
},
{
"a":"ETH",
"wb":"1.00000000",
"cw":"0.00000000"
}
],
"P":[
{
"s":"BTCUSD_200925", // 交易对
"pa":"0", // 仓位
"ep":"0.0", // 入仓价格
"cr":"200", // (费前)累计实现损益
"up":"0", // 持仓未实现盈亏
"mt":"isolated", // 保证金模式
"iw":"0.00000000", // 若为逐仓,仓位保证金
"ps":"BOTH" // 持仓方向
},
{
"s":"BTCUSD_200925",
"pa":"20",
"ep":"6563.6",
"cr":"0",
"up":"2850.21200000",
"mt":"isolated",
"iw":"13200.70726908",
"ps":"LONG"
},
{
"s":"BTCUSD_200925",
"pa":"-10",
"ep":"6563.8",
"cr":"-45.04000000",
"up":"-1423.15600000",
"mt":"isolated",
"iw":"6570.42511771",
"ps":"SHORT"
}
]
}
}
账户更新事件的 event type 固定为 ACCOUNT_UPDATE
- 仅当账户信息有变动时,才会推送此事件。
- 订单状态变化没有引起账户和持仓变化的,不会推送此事件。
每次推送的position 信息,仅包含当前持仓不为0或逐仓仓位保证金不为0的symbol position。
币本位永续合约"FUNDING FEE" 引起的资金余额变化,仅推送简略事件:
- 当用户某全仓持仓发生"FUNDING FEE"时,事件
ACCOUNT_UPDATE
将只会推送相关的用户资产余额信息B
(仅推送FUNDING FEE 发生相关的资产余额信息),而不会推送任何持仓信息P
。 - 当用户某逐仓仓持仓发生"FUNDING FEE"时,事件
ACCOUNT_UPDATE
将只会推送相关的用户资产余额信息B
(仅推送"FUNDING FEE"所使用的资产余额信息),和相关的持仓信息P
(仅推送这笔"FUNDING FEE"发生所在的持仓信息),其余持仓信息不会被推送。
- 当用户某全仓持仓发生"FUNDING FEE"时,事件
字段"m"代表了事件推出的原因,包含了以下可能类型:
- DEPOSIT
- WITHDRAW
- ORDER
- ADJUSTMENT
- INSURANCE_CLEAR
- ADMIN_DEPOSIT
- ADMIN_WITHDRAW
- MARGIN_TRANSFER
- MARGIN_TYPE_CHANGE
- ASSET_TRANSFER
- FUNDING_FEE
订单/交易 更新推送
Payload:
{
"e":"ORDER_TRADE_UPDATE", // 事件类型
"E":1568879465651, // 事件时间
"T":1568879465650, // 撮合时间
"i": "SfsR", // 账户唯一识别码 accountAlias
"o":{
"s":"BTCUSD_200925", // 交易对
"c":"TEST", // 客户端自定订单ID
// 特殊的自定义订单ID:
// "autoclose-"开头的字符串: 系统强平订单
// "delivery-"开头的字符串: 系统交割平仓单
"S":"SELL", // 订单方向
"o":"LIMIT", // 订单类型
"f":"GTC", // 有效方式
"q":"0.001", // 订单原始数量
"p":"9910", // 订单原始价格
"ap":"0", // 订单平均价格
"sp":"0", // 订单停止价格
"x":"NEW", // 本次事件的具体执行类型
"X":"NEW", // 订单的当前状态
"i":8886774, // 订单ID
"l":"0", // 订单末次成交量
"z":"0", // 订单累计已成交量
"L":"0", // 订单末次成交价格
"ma": "BTC", // 保证金资产类型
"N": "BTC", // 该成交手续费资产类型
"n": "0", // 该成交手续费数量
"T":1568879465651, // 成交时间
"t":0, // 成交ID
"rp": "0", // 该成交已实现盈亏
"b":"0", // 买单净值
"a":"9.91", // 卖单净值
"m": false, // 该成交是作为挂单成交吗?
"R":false , // 是否是只减仓单
"wt": "CONTRACT_PRICE", // 触发价类型
"ot": "LIMIT", // 原始订单类型
"ps":"LONG", // 持仓方向
"cp":false, // 是否为触发平仓单
"AP":"7476.89", // 追踪止损激活价格
"cr":"5.0", // 追踪止损回调比例
"pP": false // 是否开启条件单触发保护
}
}
当有新订单创建、订单有新成交或者新的状态变化时会推送此类事件
event type统一为 ORDER_TRADE_UPDATE
订单方向
- BUY 买入
- SELL 卖出
持仓方向:
- BOTH 单一持仓方向
- LONG 多头(双向持仓下)
- SHORT 空头(双向持仓下)
订单类型
- MARKET 市价单
- LIMIT 限价单
- STOP 止损单
- TAKE_PROFIT 止盈单
本次事件的具体执行类型
- NEW
- PARTIAL_FILL 部分成交
- FILL 成交
- CANCELED 已撤
- CALCULATED 强平单
- EXPIRED 订单失效
- TRADE 交易
订单状态
- NEW
- PARTIALLY_FILLED
- FILLED
- CANCELED
- EXPIRED
- NEW_INSURANCE 风险保障基金(强平)
- NEW_ADL 自动减仓序列(强平)
有效方式:
- GTC
- IOC
- FOK
- GTX
Websocket 账户信息请求
- 用户通过listenKey与服务器建立成功的用户信息websocket连接之后,可以使用请求获取账户信息。
- 以下数据可以通过websocket发送以获取账户信息。示例如下。
- 响应内容中的
id
是无符号整数,作为往来信息的唯一标识。
请求格式
响应
{
"result"[
{
"req":"<listenKey>@account", // request name 1
"res": // request name 1 的请求结果
...
},
{
"req":"<listenKey>@balance", // request name 2 (如有)
"res": // request name 2 的请求结果 (如有)
...
}
]
"id": 12 // ID
}
请求
{
"method": "REQUEST",
"params":
[
"@account", // request name 1
"@balance" // request name 2 (如有)
],
"id": 12 // request ID.
}
请求: 账户信息
响应
{
"id":1, // request ID
"result":[
{
"req":"gN0SiRrevtS4O0ufdCpzd4N0MzHu2lVmwbHh6hj4g9eTT9Yfe55eUc4klmsEhnwC@account", // request name
"res":{
"feeTier":0, // 账户等级
"canTrade":true, // 是否可以交易
"canDeposit":true, // 是否可以转入资金
"canWithdraw":true, // 是否可以转出资金
"accountAlias":"fsR" // 账户唯一标识
}
}
]
}
Request Name <listenKey>@account
请求: 账户余额
响应
{
"id":2, // ID
"result":[
{
"req":"gN0SiRrevtS4O0ufdCpzd4N0MzHu2lVmwbHh6hj4g9eTT9Yfe55eUc4klmsEhnwC@balance", // reqeust name
"res":{
"accountAlias":"fsR", // 账户唯一标识
"balances":[ // 余额信息
{
"asset":"BTC", // 资产
"balance":"0.00241628", // 账户余额
"crossWalletBalance":"0.00235137", // 可用于全仓的账户余额
"crossUnPnl":"0.00000000", // 全仓持仓的未实现盈亏
"availableBalance":"0.00235137", // 可下单余额
"maxWithdrawAmount":"0.00235137" // 最大可转出余额
}
]
}
}
]
}
Request Name <listenKey>@balance
请求: 持仓信息
Response
{
"id":3,
"result":[
{
"req":"gN0SiRrevtS4O0ufdCpzd4N0MzHu2lVmwbHh6hj4g9eTT9Yfe55eUc4klmsEhnwC@position",
"res":{
"positions":[
{
"entryPrice":"12044.90000003",
"marginType":"ISOLATED", // 保证金类型, "CROSSED"表示全仓,"ISOLATED"表示逐仓
"isAutoAddMargin":false,
"isolatedMargin":"0.00006388", // 逐仓保证金余额
"leverage":125, // 当前杠杆倍数
"liquidationPrice":"12002.39091452", // 估计强平价
"markPrice":"12046.06021667", // 当前标记价格
"maxQty":"50", // 当前杠杆倍数允许的数量上限(标的数量)
"positionAmt":"1", // 持仓数量
"symbol":"BTCUSD_200925", // 交易对
"unRealizedProfit":"0.00000079", // 持仓未实现盈亏
"positionSide":"LONG" // 持仓方向
},
{
"entryPrice":"0.0",
"marginType":"ISOLATED",
"isAutoAddMargin":false,
"isolatedMargin":"0",
"leverage":125,
"liquidationPrice":"0",
"markPrice":"12046.06021667",
"maxQty":"50",
"positionAmt":"0",
"symbol":"BTCUSD_200925",
"unRealizedProfit":"0.00000000",
"positionSide":"SHORT"
}
]
}
}
]
}
Request Name <listenKey>@position
- 对于单向持仓模式,仅会展示"BOTH"方向的持仓
- 对于双向持仓模式,会展示所有"BOTH", "LONG", 和"SHORT"方向的持仓
错误代码
error JSON payload:
{
"code":-1121,
"msg":"Invalid symbol."
}
错误由两部分组成:错误代码和消息。 代码是通用的,但是消息可能会有所不同。
10xx - 常规服务器或网络问题
-1000 UNKNOWN
- An unknown error occured while processing the request.
- 处理请求时发生未知错误。
-1001 DISCONNECTED
- Internal error; unable to process your request. Please try again.
- 内部错误; 无法处理您的请求。 请再试一次.
-1002 UNAUTHORIZED
- You are not authorized to execute this request.
- 您无权执行此请求。
-1003 TOO_MANY_REQUESTS
- Too many requests queued.
- 排队的请求过多。
- Too many requests; please use the websocket for live updates.
- 请求权重过多; 请使用websocket获取最新更新。
- Too many requests; current limit is %s requests per minute. Please use the websocket for live updates to avoid polling the API.
- 请求权重过多; 当前限制为每分钟%s请求权重。 请使用websocket进行实时更新,以避免轮询API。
- Way too many requests; IP banned until %s. Please use the websocket for live updates to avoid bans.
- 请求权重过多; IP被禁止,直到%s。 请使用websocket进行实时更新,以免被禁。
-1004 DUPLICATE_IP
- This IP is already on the white list
- IP地址已经在白名单
-1005 NO_SUCH_IP
- No such IP has been white listed
- 白名单上没有此IP地址
-1006 UNEXPECTED_RESP
- An unexpected response was received from the message bus. Execution status unknown.
- 从消息总线收到意外的响应。执行状态未知。
-1007 TIMEOUT
- Timeout waiting for response from backend server. Send status unknown; execution status unknown.
- 等待后端服务器响应超时。 发送状态未知; 执行状态未知。
-1014 UNKNOWN_ORDER_COMPOSITION
- Unsupported order combination.
- 不支持当前的下单参数组合
-1015 TOO_MANY_ORDERS
- Too many new orders.
- 新订单太多。
- Too many new orders; current limit is %s orders per %s. * 新订单太多; 当前限制为每%s %s个订单。
-1016 SERVICE_SHUTTING_DOWN
- This service is no longer available.
- 该服务不可用。
-1020 UNSUPPORTED_OPERATION
- This operation is not supported.
- 不支持此操作。
-1021 INVALID_TIMESTAMP
- Timestamp for this request is outside of the recvWindow.
- 此请求的时间戳在recvWindow之外。
- Timestamp for this request was 1000ms ahead of the server's time. * 此请求的时间戳比服务器时间提前1000毫秒。
-1022 INVALID_SIGNATURE
- Signature for this request is not valid.
- 此请求的签名无效。
-1023 START_TIME_GREATER_THAN_END_TIME
- Start time is greater than end time.
- 参数里面的开始时间在结束时间之后
11xx - Request issues
-1100 ILLEGAL_CHARS
- Illegal characters found in a parameter.
- 在参数中发现非法字符。
- Illegal characters found in parameter '%s'; legal range is '%s'.
- 在参数
%s
中发现非法字符; 合法范围是%s
。
-1101 TOO_MANY_PARAMETERS
- Too many parameters sent for this endpoint.
- 为此端点发送的参数太多。
- Too many parameters; expected '%s' and received '%s'.
- 参数太多;预期为
%s
并收到了%s
。 - Duplicate values for a parameter detected. * 检测到的参数值重复。
-1102 MANDATORY_PARAM_EMPTY_OR_MALFORMED
- A mandatory parameter was not sent, was empty/null, or malformed.
- 未发送强制性参数,该参数为空/空或格式错误。
- Mandatory parameter '%s' was not sent, was empty/null, or malformed.
* 强制参数
%s
未发送,为空/空或格式错误。 - Param '%s' or '%s' must be sent, but both were empty/null!
* 必须发送参数
%s
或%s
,但两者均为空!
-1103 UNKNOWN_PARAM
- An unknown parameter was sent.
- 发送了未知参数。
-1104 UNREAD_PARAMETERS
- Not all sent parameters were read.
- 并非所有发送的参数都被读取。
- Not all sent parameters were read; read '%s' parameter(s) but was sent '%s'.
- 并非所有发送的参数都被读取; 读取了
%s
参数,但被发送了%s
。
-1105 PARAM_EMPTY
- A parameter was empty.
- 参数为空。
- Parameter '%s' was empty.
- 参数
%s
为空。
-1106 PARAM_NOT_REQUIRED
- A parameter was sent when not required.
- 发送了不需要的参数。
- Parameter '%s' sent when not required.
- 发送了不需要参数
%s
。
-1111 BAD_PRECISION
- Precision is over the maximum defined for this asset.
- 精度超过为此资产定义的最大值。
-1112 NO_DEPTH
- No orders on book for symbol.
- 交易对没有挂单。
-1114 TIF_NOT_REQUIRED
- TimeInForce parameter sent when not required.
- 发送的
TimeInForce
参数不需要。
-1115 INVALID_TIF
- Invalid timeInForce.
- 无效的
timeInForce
-1116 INVALID_ORDER_TYPE
- Invalid orderType.
- 无效订单类型。
-1117 INVALID_SIDE
- Invalid side.
- 无效买卖方向。
-1118 EMPTY_NEW_CL_ORD_ID
- New client order ID was empty.
- 新的客户订单ID为空。
-1119 EMPTY_ORG_CL_ORD_ID
- Original client order ID was empty.
- 客户自定义的订单ID为空。
-1120 BAD_INTERVAL
- Invalid interval.
- 无效时间间隔。
-1121 BAD_SYMBOL
- Invalid symbol.
- 无效的交易对。
-1125 INVALID_LISTEN_KEY
- This listenKey does not exist.
- 此
listenKey
不存在。
-1127 MORE_THAN_XX_HOURS
- Lookup interval is too big.
- 查询间隔太大。
- More than %s hours between startTime and endTime.
- 从开始时间到结束时间之间超过
%s
小时。
-1128 OPTIONAL_PARAMS_BAD_COMBO
- Combination of optional parameters invalid.
- 可选参数组合无效。
-1130 INVALID_PARAMETER
- Invalid data sent for a parameter.
- 发送的参数为无效数据。
- Data sent for paramter '%s' is not valid.
- 发送参数
%s
的数据无效。
-1136 INVALID_NEW_ORDER_RESP_TYPE
- Invalid newOrderRespType.
- 无效的
newOrderRespType
。
20xx - Processing Issues
-2010 NEW_ORDER_REJECTED
- NEW_ORDER_REJECTED
- 新订单被拒绝
-2011 CANCEL_REJECTED
- CANCEL_REJECTED
- 取消订单被拒绝
-2013 NO_SUCH_ORDER
- Order does not exist.
- 订单不存在。
-2014 BAD_API_KEY_FMT
- API-key format invalid.
- API-key 格式无效。
-2015 REJECTED_MBX_KEY
- Invalid API-key, IP, or permissions for action.
- 无效的API密钥,IP或操作权限。
-2016 NO_TRADING_WINDOW
- No trading window could be found for the symbol. Try ticker/24hrs instead.
- 找不到该交易对的交易窗口。 尝试改为24小时自动报价。
-2018 BALANCE_NOT_SUFFICIENT
- Balance is insufficient.
- 余额不足
-2019 MARGIN_NOT_SUFFICIEN
- Margin is insufficient.
- 杠杆账户余额不足
-2020 UNABLE_TO_FILL
- Unable to fill.
- 无法成交
-2021 ORDER_WOULD_IMMEDIATELY_TRIGGER
- Order would immediately trigger.
- 订单可能被立刻触发
-2022 REDUCE_ONLY_REJECT
- ReduceOnly Order is rejected.
ReduceOnly
订单被拒绝
-2023 USER_IN_LIQUIDATION
- User in liquidation mode now.
- 用户正处于被强平模式
-2024 POSITION_NOT_SUFFICIENT
- Position is not sufficient.
- 持仓不足
-2025 MAX_OPEN_ORDER_EXCEEDED
- Reach max open order limit.
- 挂单量达到上限
-2026 REDUCE_ONLY_ORDER_TYPE_NOT_SUPPORTED
- This OrderType is not supported when reduceOnly.
- 当前订单类型不支持
reduceOnly
-2027 MAX_LEVERAGE_RATIO
- Exceeded the maximum allowable position at current leverage.
- 挂单或持仓超出当前初始杠杆下的最大值
-2028 MIN_LEVERAGE_RATIO
- Leverage is smaller than permitted: insufficient margin balance.
- 调整初始杠杆过低,导致可用余额不足
40xx - Filters and other Issues
-4000 INVALID_ORDER_STATUS
- Invalid order status.
- 订单状态不正确
-4001 PRICE_LESS_THAN_ZERO
- Price less than 0.
- 价格小于0
-4002 PRICE_GREATER_THAN_MAX_PRICE
- Price greater than max price.
- 价格超过最大值
-4003 QTY_LESS_THAN_ZERO
- Quantity less than zero.
- 数量小于0
-4004 QTY_LESS_THAN_MIN_QTY
- Quantity less than min quantity.
- 数量小于最小值
-4005 QTY_GREATER_THAN_MAX_QTY
- Quantity greater than max quantity.
- 数量大于最大值
-4006 STOP_PRICE_LESS_THAN_ZERO
- Stop price less than zero.
- 触发价小于最小值
-4007 STOP_PRICE_GREATER_THAN_MAX_PRICE
- Stop price greater than max price.
- 触发价大于最大值
-4008 TICK_SIZE_LESS_THAN_ZERO
- Tick size less than zero.
- 价格精度小于0
-4009 MAX_PRICE_LESS_THAN_MIN_PRICE
- Max price less than min price.
- 最大价格小于最小价格
-4010 MAX_QTY_LESS_THAN_MIN_QTY
- Max qty less than min qty.
- 最大数量小于最小数量
-4011 STEP_SIZE_LESS_THAN_ZERO
- Step size less than zero.
- 步进值小于0
-4012 MAX_NUM_ORDERS_LESS_THAN_ZERO
- Max num orders less than zero.
- 最大订单量小于0
-4013 PRICE_LESS_THAN_MIN_PRICE
- Price less than min price.
- 价格小于最小价格
-4014 PRICE_NOT_INCREASED_BY_TICK_SIZE
- Price not increased by tick size.
- 价格增量不是价格精度的倍数。
-4015 INVALID_CL_ORD_ID_LEN
- Client order id is not valid.
- 客户订单ID有误。
- Client order id length should be less than 32 chars
- 客户订单ID长度应该少于32字符
-4016 PRICE_HIGHTER_THAN_MULTIPLIER_UP
- Price is higher than mark price multiplier cap.
-4017 MULTIPLIER_UP_LESS_THAN_ZERO
- Multiplier up less than zero.
- 价格上限小于0
-4018 MULTIPLIER_DOWN_LESS_THAN_ZERO
- Multiplier down less than zero.
- 价格下限小于0
-4019 COMPOSITE_SCALE_OVERFLOW
- Composite scale too large.
-4020 TARGET_STRATEGY_INVALID
- Target strategy invalid for orderType '%s',reduceOnly '%b'.
- 目标策略值不适合
%s
订单状态, 只减仓%b
。
-4021 INVALID_DEPTH_LIMIT
- Invalid depth limit.
- 深度信息的
limit
值不正确。 - '%s' is not valid depth limit.
%s
不是合理的深度信息的limit
值。
-4022 WRONG_MARKET_STATUS
- market status sent is not valid.
- 发送的市场状态不正确。
-4023 QTY_NOT_INCREASED_BY_STEP_SIZE
- Qty not increased by step size.
- 数量的递增值不是步进值的倍数。
-4024 PRICE_LOWER_THAN_MULTIPLIER_DOWN
- Price is lower than mark price multiplier floor.
-4025 MULTIPLIER_DECIMAL_LESS_THAN_ZERO
- Multiplier decimal less than zero.
-4026 COMMISSION_INVALID
- Commission invalid.
- 收益值不正确
%s
less than zero.%s
少于0%s
absolute value greater than%s
%s
绝对值大于%s
-4027 INVALID_ACCOUNT_TYPE
- Invalid account type.
- 账户类型不正确。
-4028 INVALID_LEVERAGE
- Invalid leverage
- 杠杆倍数不正确
- Leverage
%s
is not valid - 杠杆
%s
不正确 - Leverage
%s
already exist with%s
- 杠杆
%s
已经存在于%s
-4029 INVALID_TICK_SIZE_PRECISION
- Tick size precision is invalid.
- 价格精度小数点位数不正确。
-4030 INVALID_STEP_SIZE_PRECISION
- Step size precision is invalid.
- 步进值小数点位数不正确。
-4031 INVALID_WORKING_TYPE
- Invalid parameter working type
- 不正确的参数类型
- Invalid parameter working type:
%s
- 不正确的参数类型:
%s
-4032 EXCEED_MAX_CANCEL_ORDER_SIZE
- Exceed maximum cancel order size.
- 超过可以取消的最大订单量。
- Invalid parameter working type:
%s
- 不正确的参数类型:
%s
-4033 INSURANCE_ACCOUNT_NOT_FOUND
- Insurance account not found.
- 风险保障基金账号没找到。
-4044 INVALID_BALANCE_TYPE
- Balance Type is invalid.
- 余额类型不正确。
-4045 MAX_STOP_ORDER_EXCEEDED
- Reach max stop order limit.
- 达到止损单的上限。
-4046 NO_NEED_TO_CHANGE_MARGIN_TYPE
- No need to change margin type.
- 不需要切换仓位模式。
-4047 THERE_EXISTS_OPEN_ORDERS
- Margin type cannot be changed if there exists open orders.
- 如果有挂单,仓位模式不能切换。
-4048 THERE_EXISTS_QUANTITY
- Margin type cannot be changed if there exists position.
- 如果有仓位,仓位模式不能切换。
-4049 ADD_ISOLATED_MARGIN_REJECT
- Add margin only support for isolated position.
-4050 CROSS_BALANCE_INSUFFICIENT
- Cross balance insufficient.
- 全仓余额不足。
-4051 ISOLATED_BALANCE_INSUFFICIENT
- Isolated balance insufficient.
- 逐仓余额不足。
-4052 NO_NEED_TO_CHANGE_AUTO_ADD_MARGIN
- No need to change auto add margin.
-4053 AUTO_ADD_CROSSED_MARGIN_REJECT
- Auto add margin only support for isolated position.
- 自动增加保证金只适用于逐仓。
-4054 ADD_ISOLATED_MARGIN_NO_POSITION_REJECT
- Cannot add position margin: position is 0.
- 不能增加逐仓保证金: 持仓为0
-4055 AMOUNT_MUST_BE_POSITIVE
- Amount must be positive.
- 数量必须是正整数
-4056 INVALID_API_KEY_TYPE
- Invalid api key type.
- API key的类型不正确
-4057 INVALID_RSA_PUBLIC_KEY
- Invalid api public key
- API key不正确
-4058 MAX_PRICE_TOO_LARGE
- maxPrice and priceDecimal too large,please check.
- maxPrice和priceDecimal太大,请检查。
-4059 NO_NEED_TO_CHANGE_POSITION_SIDE
- No need to change position side.
- 无需变更仓位方向
-4060 INVALID_POSITION_SIDE
- Invalid position side.
- 仓位方向不正确。
-4061 POSITION_SIDE_NOT_MATCH
- Order's position side does not match user's setting.
- 订单的持仓方向和用户设置不一致。
-4062 REDUCE_ONLY_CONFLICT
- Invalid or improper reduceOnly value.
- 仅减仓的设置不正确。
-4067 POSITION_SIDE_CHANGE_EXISTS_OPEN_ORDERS
- Position side cannot be changed if there exists open orders.
- 如果有挂单,无法修改仓位方向。
-4068 POSITION_SIDE_CHANGE_EXISTS_QUANTITY
- Position side cannot be changed if there exists position.
- 如果有仓位, 无法修改仓位方向。
-4082 INVALID_BATCH_PLACE_ORDER_SIZE
- Invalid number of batch place orders.
- Invalid number of batch place orders: %s
- 批量下单的数量不正确。
-4083 PLACE_BATCH_ORDERS_FAIL
- Fail to place batch orders.
- 无法批量下单。
-4084 UPCOMING_METHOD
- Method is not allowed currently. Upcoming soon.
- 方法不支持。
-4086 INVALID_PRICE_SPREAD_THRESHOLD
- Invalid price spread threshold.
- 无效的价差阀值。
-4087 INVALID_PAIR
- Invalid pair.
- 无效的币对。
-4088 INVALID_TIME_INTERVAL
- Invalid time interval.
- 无效的时间间隔。
- Maximum time interval is %s days.
- 最大时间间隔是
%s
天。
-4089 REDUCE_ONLY_ORDER_PERMISSION
- User can only place reduce only order.
- 用户只能下仅减仓单。
-4090 NO_PLACE_ORDER_PERMISSION
- User can not place order currently.
- 用户当前不能下单。
-4104 INVALID_CONTRACT_TYPE
- Invalid contract type.
- 无效的合约类型。
-4110 INVALID_CLIENT_TRAN_ID_LEN
- clientTranId is not valid.
clientTranId
不正确。- Client tran id length should be less than 64 chars.
- 客户的
tranId
长度应该小于64个字符。
-4111 DUPLICATED_CLIENT_TRAN_ID
- clientTranId is duplicated.
clientTranId
重复。- Client tran id should be unique within 7 days.
- 客户的
tranId
应该在7天内唯一。
-4112 REDUCE_ONLY_MARGIN_CHECK_FAILED
- ReduceOnly Order Failed. Please check your existing position and open orders.
- 仅减仓订单失败。请检查现有的持仓和挂单。
-4113 MARKET_ORDER_REJECT
- The counterparty's best price does not meet the PERCENT_PRICE filter limit.
- 交易对手的最高价格未达到PERCENT_PRICE过滤器限制。
-4135 INVALID_ACTIVATION_PRICE
- Invalid activation price.
- 无效的激活价格。