账户信息流
连接
- 本篇所列出REST接口的baseurl https://papi.binance.com
- 用于订阅账户数据的
listenKey从创建时刻起有效期为60分钟 - 可以通过
PUT一个listenKey延长60分钟有效期,如收到-1125报错提示此listenKey不存在,建议重新使用POST /papi/v1/listenKey生成listenKey - 可以通过
DELETE一个listenKey立即关闭当前数据流,并使该listenKey无效 - 在具有有效
listenKey的帐户上执行POST将返回当前有效的listenKey并将其有效期延长60分钟 - Websocket连接方式:
- Base Url: wss://fstream.binance.com/pm
- 订阅账户数据流的stream名称为 /ws/<listenKey>
- 连接样例:
wss://fstream.binance.com/pm/ws/pqia91ma19a5s61cv6a81va65sdf19v8a65a1a5s61cv6a81va65sdf19v8a65a1
- 每个链接有效期不超过24小时,请妥善处理断线重连。
- 消息顺序保证:
- 对于同一用户的单一 Websocket 连接,相同事件类型的消息(例如
ACCOUNT_UPDATE、ORDER_TRADE_UPDATE)在T(来自撮合引擎的成交时间)和E(消息生成时的事件时间)两个字段上都严格有序。 - 建议:使用
E字段进行更新排序,特别是在以下情况下:- 比较不同事件类型的事件时(例如
ORDER_TRADE_UPDATE与市场数据流如aggTrade)。 - 来自不同服务的事件可能具有相同的
T但由于处理时间的差异而具有不同的E值。 - 对于同一连接上的相同事件类型,
T和E都保持严格有序,因此可以可靠地使用任一字段。
- 比较不同事件类型的事件时(例如
- 对于同一用户的单一 Websocket 连接,相同事件类型的消息(例如
- 考虑到剧烈行情下, RESTful接口可能存在查询延迟,我们强烈建议您优先从Websocket user data stream推送的消息来获取订单,仓位等信息。
合约Balance和Position更新推送
事件描述
账户更新事件的 event type 固定为 ACCOUNT_UPDATE
-
当账户信息有变动时,会推送此事件:
- 仅当账户信息有变动时(包括资金、仓位、保证金模式等发生变化),才会推送此事件;
- 订单状态变化没有引起账户和持仓变化的,不会推送此事件;
- position 信息:仅当symbol仓位有变动时推送。
-
"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
- FUNDING_FEE
- WITHDRAW_REJECT
- ADJUSTMENT
- INSURANCE_CLEAR
- ADMIN_DEPOSIT
- ADMIN_WITHDRAW
- MARGIN_TRANSFER
- MARGIN_TYPE_CHANGE
- ASSET_TRANSFER
- OPTIONS_PREMIUM_FEE
- OPTIONS_SETTLE_PROFIT
- AUTO_EXCHANGE
- COIN_SWAP_DEPOSIT
- COIN_SWAP_WITHDRAW
-
字段"bc"代表了钱包余额的改变量,即 balance change,但注意其不包含仓位盈亏及交易手续费。
事件类型
ACCOUNT_UPDATE
更新速度
50ms
Payload
Schema:
accountUpdate
合约订单/交易更新推送
事件描述
当有新订单创建、订单有新成交或者新的状态变化时会推送此类事件,事件类型统一为 ORDER_TRADE_UPDATE
订单方向
- BUY 买入
- SELL 卖出
订单类型
- MARKET 市价单
- LIMIT 限价单
- LIQUIDATION 强平单
本次事件的具体执行类型
- NEW
- CANCELED 已撤
- CALCULATED 订单 ADL 或爆仓
- EXPIRED 订单失效
- TRADE 交易
订单状态
- NEW
- PARTIALLY_FILLED
- FILLED
- CANCELED
- EXPIRED
- EXPIRED_IN_MATCH
有效方式
- GTC
- IOC
- FOK
- GTX
强平和 ADL:
- 若用户因保证金不足发生强平:
c为"autoclose-XXX",X为"NEW"
- 若用户保证金充足但被 ADL:
c为"adl_autoclose",X为"NEW"
事件类型
ORDER_TRADE_UPDATE
Payload
Schema:
orderTradeUpdate
合约杠杆倍数等账户配置更新推送
事件描述
当账户配置发生变化时会推送此类事件,类型统一为ACCOUNT_CONFIG_UPDATE。当交易对杠杆倍数发生变化时,推送消息体会包含对象ac表示交易对账户配置,其中s代表具体的交易对,l代表杠杆倍数。
事件类型
ACCOUNT_CONFIG_UPDATE
Payload
Schema:
accountConfigUpdate
合约条件订单/交易更新推送
事件描述
当有新订单创建、订单有新成交或者新的状态变化时会推送此类事件,事件类型统一为
CONDITIONAL_ORDER_TRADE_UPDATE
订单方向
- BUY 买入
- SELL 卖出
条件订单类型
- STOP
- TAKE_PROFIT
- STOP_MARKET
- TAKE_PROFIT_MARKET
- TRAILING_STOP_MARKET
本次事件的具体执行类型
- NEW
- CANCELED 已撤
- CALCULATED 订单 ADL 或爆仓
- EXPIRED 订单失效
- TRADE 交易
订单状态
- NEW
- CANCELED
- EXPIRED
- TRIGGERED
- FINISHED
有效方式
- GTC
- IOC
- FOK
- GTX
事件类型
CONDITIONAL_ORDER_TRADE_UPDATE
Payload
Schema:
conditionalOrderTradeUpdate
杠杆账户余额更新事件
事件描述
杠杆账户余额更新事件
事件类型
balanceUpdate
Payload
Schema:
balanceUpdate
杠杆账户订单事件
事件描述
杠杆账户订单由executionReport事件推出
执行类型:
- NEW - 新订单已被引擎接受。
- CANCELED - 订单被用户取消。
- REJECTED - 新订单被拒绝 (这信息只会在撤消挂单再下单中发生,下新订单被拒绝但撤消挂单请求成功)。
- TRADE - 订单有新成交。
- EXPIRED - 订单已根据 Time In Force 参数的规则取消(e.g. 没有成交的 LIMIT FOK 订单或部分成交的 LIMIT IOC 订单)或者被交易所取消(e.g. 强平或维护期间取消的订单)。
- TRADE_PREVENTION - 订单因 STP 触发而过期。
事件类型
executionReport
Payload
Schema:
executionReport
杠杆账户更新事件
事件描述
每当帐户余额发生更改时,都会发送一个事件outboundAccountPosition,其中包含可能由生成余额变动的事件而变动的资产。
事件类型
outboundAccountPosition
Payload
Schema:
outboundAccountPosition
杠杆账户负债更新
事件描述
杠杆账户负债更新
事件类型
liabilityChange
Payload
Schema:
liabilityChange
杠杆账户全仓挂单占用事件
事件描述
杠杆账户全仓挂单占用事件
事件类型
openOrderLoss
Payload
Schema:
openOrderLoss
账户风险状态变动
事件描述
- 当用户持仓风险过高,会推送此消息。
- 此消息仅作为风险指导信息,不建议用于投资策略。
RISK_LEVEL_CHANGE包含如下事件:MARGIN_CALL,REDUCE_ONLY,FORCE_LIQUIDATION- 在大波动市场行情下,不排除此消息发出的同时用户仓位已被强平的可能。
事件类型
RISK_LEVEL_CHANGE
Payload
Schema:
riskLevelChange
条件订单更新推送
事件描述
当有新条件订单创建、订单状态变化时会推送此类事件。事件类型为 ALGO_UPDATE。
条件单状态:
NEW: 条件订单已提交,但尚未触发。CANCELED: 条件订单已被取消。TRIGGERING: 条件订单已满足触发条件,且已被转发至撮合引擎。TRIGGERED: 条件订单已成功触发并进入撮合引擎。FINISHED: 触发的条件订单已在撮合引擎中被成交或取消。REJECTED: 条件订单被撮合引擎拒绝(例如保证金检查失败)。EXPIRED: 条件订单被系统取消。
事件类型
ALGO_UPDATE
Payload
Schema:
algoOrderUpdate
listenKey过期推送
事件描述
当前连接使用的有效 listenKey 过期时,user data stream 将会推送此事件。
注意:
- 此事件与 websocket 连接中断没有必然联系
- 只有正在连接中的有效
listenKey过期时才会收到此消息 - 收到此消息后 user data stream 将不再更新,直到用户使用新的有效的
listenKey
事件类型
listenKeyExpired
Payload
Schema:
listenKeyExpired