Binance API 使用文档

Websocket 行情推送.
Stream Names: @depth 或 @[email protected] 或 @[email protected] .
Update Speed: 250ms 或 500ms 或 100ms.
增量深度信息.
Stream 名称: @depth OR @[email protected] OR @[email protected]
Update Speed: 250ms 或 500ms 或 100ms.
如何正确在本地维护一个orderbook副本.
订阅 wss://fstream.binance.com/[email protected] 开始缓存收到的更新。同一个价位,后收到的更新覆盖前面的。 访问Rest接口 https://fapi.binance.com/fapi/v1/depth?symbol=BTCUSDT&limit=1000 获得一个1000档的深度快照 将目前缓存到的信息中 u 将深度快照中的内容更新到本地orderbook副本中,并从websocket接收到的第一个 U 且 u >= lastUpdateId 的event开始继续更新本地副本。 每一个新event的 pu 应该等于上一个event的 u ,否则可能出现了丢包,请从step3重新进行初始化。 每一个event中的挂单量代表这个价格目前的挂单量 绝对值 ,而不是相对变化。 如果某个价格对应的挂单量为0,表示该价位的挂单已经撤单或者被吃,应该移除这个价位。
综合指数交易对信息流.
Stream Name: @compositeIndex.
Update Speed: 1000ms.
账户和交易接口.
获取划转历史.
更改持仓模式(TRADE)
POST /fapi/v1/positionSide/dual (HMAC SHA256)
变换用户在 所有symbol 合约上的持仓模式:双向持仓或单向持仓。
权重: 1.
参数:
名称 类型 是否必需 描述 dualSidePosition STRING YES “true”: 双向持仓模式;”false”: 单向持仓模式 recvWindow LONG NO timestamp LONG YES.
查询持仓模式(USER_DATA)
GET /fapi/v1/positionSide/dual (HMAC SHA256)
查询用户目前在 所有symbol 合约上的持仓模式:双向持仓或单向持仓。
权重: 30.
参数:
名称 类型 是否必需 描述 recvWindow LONG NO timestamp LONG YES.
更改联合保证金模式(TRADE)
POST /fapi/v1/multiAssetsMargin (HMAC SHA256)
变换用户在 所有symbol 合约上的联合保证金模式:开启或关闭联合保证金模式。
权重: 1.
参数:
名称 类型 是否必需 描述 multiAssetsMargin STRING YES “true”: 联合保证金模式开启;”false”: 联合保证金模式关闭 recvWindow LONG NO timestamp LONG YES.
查询联合保证金模式(USER_DATA)
GET /fapi/v1/multiAssetsMargin (HMAC SHA256)
查询用户目前在 所有symbol 合约上的联合保证金模式。
权重: 30.
参数:
名称 类型 是否必需 描述 recvWindow LONG NO timestamp LONG YES.
下单 (TRADE)
POST /fapi/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 用户自定义的订单号,不可以重复出现在挂单中。如空缺系统会自动赋值。必须满足正则规则 ^[\.A-Z\:/a-z0-9_-]$ 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, 5],其中 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 的不同,某些参数强制要求,具体如下:
如果订单参数 priceProtect 为true: 达到触发价时, MARK_PRICE (标记价格)与 CONTRACT_PRICE (合约最新价)之间的价差不能超过改symbol触发保护阈值 触发保护阈值请参考接口 GET /fapi/v1/exchangeInfo 返回内容相应symbol中”triggerProtect”字段 买入: 最新合约价格/标记价格高于等于触发价 stopPrice 卖出: 最新合约价格/标记价格低于等于触发价 stopPrice 买入: 最新合约价格/标记价格低于等于触发价 stopPrice 卖出: 最新合约价格/标记价格高于等于触发价 stopPrice 买入: 当合约价格/标记价格区间最低价格低于激活价格 activationPrice ,且最新合约价格/标记价高于等于最低价设定回调幅度。 卖出: 当合约价格/标记价格区间最高价格高于激活价格 activationPrice ,且最新合约价格/标记价低于等于最高价设定回调幅度。
买入: 指定的 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 /fapi/v1/order/test (HMAC SHA256)
权重: 1.
参数:
参考 POST /fapi/v1/order.
批量下单 (TRADE)
POST /fapi/v1/batchOrders (HMAC SHA256)
权重: 5.
参数:
名称 类型 是否必需 描述 batchOrders list YES 订单列表,最多支持5个订单 recvWindow LONG NO timestamp LONG YES.
其中 batchOrders 应以list of JSON格式填写订单参数.
例子: /fapi/v1/batchOrders?batchOrders=[ “symbol”:”BTCUSDT”,”side”:”BUY”,”price”:”10001″,”quantity”:”0.001″>] 具体订单条件规则,与普通下单一致 批量下单采取并发处理,不保证订单撮合顺序 批量下单的返回内容顺序,与订单列表顺序一致.
查询订单 (USER_DATA)
GET /fapi/v1/order (HMAC SHA256)
请注意,如果订单满足如下条件,不会被查询到: 订单的最终状态为 CANCELED 或者 EXPIRED , 并且 订单没有任何的成交记录, 并且 订单生成时间 + 7天.
权重: 1.
参数:
名称 类型 是否必需 描述 symbol STRING YES 交易对 orderId LONG NO 系统订单号 origClientOrderId STRING NO 用户自定义的订单号 recvWindow LONG NO timestamp LONG YES.
至少需要发送 orderId 与 origClientOrderId 中的一个.
撤销订单 (TRADE)
DELETE /fapi/v1/order (HMAC SHA256)
权重: 1.
Parameters:
名称 类型 是否必需 描述 symbol STRING YES 交易对 orderId LONG NO 系统订单号 origClientOrderId STRING NO 用户自定义的订单号 recvWindow LONG NO timestamp LONG YES.
orderId 与 origClientOrderId 必须至少发送一个.
撤销全部订单 (TRADE)
DELETE /fapi/v1/allOpenOrders (HMAC SHA256)
权重: 1.
Parameters:
名称 类型 是否必需 描述 symbol STRING YES 交易对 recvWindow LONG NO timestamp LONG YES.
批量撤销订单 (TRADE)
DELETE /fapi/v1/batchOrders (HMAC SHA256)
权重: 1.
Parameters:
名称 类型 是否必需 描述 symbol STRING YES 交易对 orderIdList LIST NO 系统订单号, 最多支持10个订单 比如 [1234567,2345678] origClientOrderIdList LIST NO 用户自定义的订单号, 最多支持10个订单 比如 [“my_id_1″,”my_id_2”] 需要encode双引号。逗号后面没有空格。 recvWindow LONG NO timestamp LONG YES.
orderIdList 与 origClientOrderIdList 必须至少发送一个,不可同时发送.
倒计时撤销所有订单 (TRADE)
POST /fapi/v1/countdownCancelAll (HMAC SHA256)
权重: 10.
Parameters:
用法示例: 以30s的间隔重复此接口,每次倒计时countdownTime设置为120000(120s)。 如果在120秒内未再次调用此接口,则您指定symbol上的所有挂单都会被自动撤销。 如果在120秒内以将countdownTime设置为0,则倒数计时器将终止,自动撤单功能取消。
系统会 大约每10毫秒 检查一次所有倒计时情况,因此请注意,使用此功能时应考虑足够的冗余。 我们不建议将倒记时设置得太精确或太小。
查询当前挂单 (USER_DATA)
GET /fapi/v1/openOrder (HMAC SHA256)
权重: 1.
参数:
查看当前全部挂单 (USER_DATA)
GET /fapi/v1/openOrders (HMAC SHA256)
权重: – 带symbol 1 – 不带 40.
参数:
查询所有订单(包括历史订单) (USER_DATA)
GET /fapi/v1/allOrders (HMAC SHA256)
请注意,如果订单满足如下条件,不会被查询到: 订单的最终状态为 CANCELED 或者 EXPIRED , 并且 订单没有任何的成交记录, 并且 订单生成时间 + 7天.
权重: 5.
Parameters:
账户余额V2 (USER_DATA)
GET /fapi/v2/balance (HMAC SHA256)
Weight: 5.
Parameters:
名称 类型 是否必需 描述 recvWindow LONG NO timestamp LONG YES.
账户信息V2 (USER_DATA)
GET /fapi/v2/account (HMAC SHA256)
权重: 5.
参数:
名称 类型 是否必需 描述 recvWindow LONG NO timestamp LONG YES.
调整开仓杠杆 (TRADE)
POST /fapi/v1/leverage (HMAC SHA256)
权重: 1.
参数:
名称 类型 是否必需 描述 symbol STRING YES 交易对 leverage INT YES 目标杠杆倍数:1 到 125 整数 recvWindow LONG NO timestamp LONG YES.
变换逐全仓模式 (TRADE)
POST /fapi/v1/marginType (HMAC SHA256)
权重: 1.
参数:
名称 类型 是否必需 描述 symbol STRING YES 交易对 marginType ENUM YES 保证金模式 ISOLATED(逐仓), CROSSED(全仓) recvWindow LONG NO timestamp LONG YES.
调整逐仓保证金 (TRADE)
POST /fapi/v1/positionMargin (HMAC SHA256)
权重: 1.
参数:
逐仓保证金变动历史 (TRADE)
GET /fapi/v1/positionMargin/history (HMAC SHA256)
权重: 1.
参数:
名称 类型 是否必需 描述 symbol STRING YES 交易对 type INT NO 调整方向 1: 增加逐仓保证金,2: 减少逐仓保证金 startTime LONG NO 起始时间 endTime LONG NO 结束时间 limit INT NO 返回的结果集数量 默认值: 500 recvWindow LONG NO timestamp LONG YES.
用户持仓风险V2 (USER_DATA)
GET /fapi/v2/positionRisk (HMAC SHA256)
权重: 5.
参数:
名称 类型 是否必需 描述 symbol STRING NO recvWindow LONG NO timestamp LONG YES.
注意 请与账户推送信息 ACCOUNT_UPDATE 配合使用,以满足您的及时性和准确性需求。
账户成交历史 (USER_DATA)
GET /fapi/v1/userTrades (HMAC SHA256)
权重: 5.
参数:
获取账户损益资金流水(USER_DATA)
GET /fapi/v1/income (HMAC SHA256)
权重: 30.
参数:
如果 startTime 和 endTime 均未发送, 只会返回最近7天的数据。 如果 incomeType 没有发送,返回所有类型账户损益资金流水。 “trandId” 在相同用户的同一种收益流水类型中是唯一的。 仅保留最近3个月的数据。
杠杆分层标准 (USER_DATA)
权重: 1.
参数:
名称 类型 是否必需 描述 symbol STRING NO recvWindow LONG NO timestamp LONG YES.
持仓ADL队列估算 (USER_DATA)
权重: 5.
参数:
对于单向持仓模式或者是逐仓状态下的双向持仓模式的交易对,会返回 “LONG”, “SHORT” 和 “BOTH” 分别表示不同持仓方向上持仓的adl队列分数.
对于全仓状态下的双向持仓模式的交易对,会返回 “LONG”, “SHORT” 和 “HEDGE”, 其中”HEDGE”的存在仅作为标记;其中如果多空均有持仓的情况下,”LONG”和”SHORT”返回共同计算后相同的队列分数。
用户强平单历史 (USER_DATA)
权重: 带symbol 20, 不带symbol 50.
参数:
合约交易量化规则指标 (USER_DATA)
更多细节, 请参考合约交易量化规则.
权重:
参数:
名称 类型 是否必需 描述 symbol STRING NO recvWindow LONG NO timestamp LONG YES.
用户手续费率 (USER_DATA)
GET /fapi/v1/commissionRate (HMAC SHA256)
权重: 20.
参数:
名称 类型 是否必需 描述 symbol STRING YES recvWindow LONG NO timestamp LONG YES.
获取合约资金流水下载Id (USER_DATA)
GET /fapi/v1/income/asyn (HMAC SHA256)
权重: 5.
参数:
通过下载Id获取合约资金流水下载链接 (USER_DATA)
GET /fapi/v1/income/asyn/id (HMAC SHA256)
权重: 5.
参数:
Websocket 账户信息推送.
本篇所列出REST接口的baseurl https://fapi.binance.com 用于订阅账户数据的 listenKey 从创建时刻起有效期为60分钟 可以通过 PUT 一个 listenKey 延长60分钟有效期 可以通过 DELETE 一个 listenKey 立即关闭当前数据流,并使该 listenKey 无效 在具有有效 listenKey 的帐户上执行 POST 将返回当前有效的 listenKey 并将其有效期延长60分钟.
连接方式一: Base Url: wss://fstream.binance.com 订阅账户数据流的stream名称为 /ws/ 连接样例: wss://fstream.binance.com/ws/XaEAKTsQSRLZAGH9tuIu37plSRsdjmlAVBoNYPUITlTAko1WI22PgmBMpI1rS8Yh 连接方式二: Base Url: wss://fstream-auth.binance.com 订阅账户数据流的stream名称为 /ws/?listenKey= 在建立连接时,必须为一个有效的listenKey 连接样例: wss://fstream-auth.binance.com/ws/XaEAKTsQSRLZAGH9tuIu37plSRsdjmlAVBoNYPUITlTAko1WI22PgmBMpI1rS8Yh?listenKey=XaEAKTsQSRLZAGH9tuIu37plSRsdjmlAVBoNYPUITlTAko1WI22PgmBMpI1rS8Yh.
单一账户,单一连接的推送数据流消息可以保证时间序; 强烈建议您使用 E 字段进行排序.
考虑到剧烈行情下, RESTful接口可能存在查询延迟,我们强烈建议您优先从Websocket user data stream推送的消息来获取订单,仓位等信息。
生成listenKey (USER_STREAM)
创建一个新的user data stream,返回值为一个listenKey,即websocket订阅的stream名称。如果该帐户具有有效的 listenKey ,则将返回该 listenKey 并将其有效期延长60分钟。