账户信息流
连接
- 本篇所列出REST接口的baseurl https://fapi.binance.com
- 用于订阅账户数据的
listenKey从创建时刻起有效期为60分钟 - 可以通过
PUT一个listenKey延长60分钟有效期,如收到-1125报错提示此listenKey不存在,建议重新使用POST /fapi/v1/listenKey生成listenKey - 可以通过
DELETE一个listenKey立即关闭当前数据流,并使该listenKey无效 - 在具有有效
listenKey的帐户上执行POST将返回当前有效的listenKey并将其有效期延长60分钟 - 本篇所列出的websocket接口,连接方式如下:
- Base Url: wss://fstream.binance.com/private
- 订阅账户数据流的stream名称为 /ws/<listenKey>
- 连接样例:
wss://fstream.binance.com/private/ws/XaEAKTsQSRLZAGH9tuIu37plSRsdjmlAVBoNYPUITlTAko1WI22PgmBMpI1rS8Yh
- 每个链接有效期不超过24小时,请妥善处理断线重连。
- 消息顺序保证:
- 对于同一用户的单一 Websocket 连接,相同事件类型的消息(例如
ACCOUNT_UPDATE、ORDER_TRADE_UPDATE)在T(来自撮合引擎的成交时间)和E(消息生成时的事件时间)两个字段上都严格有序。 - 建议:使用
E字段进行更新排序,特别是在以下情况下:- 比较不同事件类型的事件时(例如
ORDER_TRADE_UPDATE与市场数据流如aggTrade)。 - 来自不同服务的事件可能具有相同的
T但由于处理时间的差异而具有不同的E值。 - 对于同一连接上的相同事件类型,
T和E都保持严格有序,因此可以可靠地使用任一字段。
- 比较不同事件类型的事件时(例如
- 对于同一用户的单一 Websocket 连接,相同事件类型的消息(例如
- 考虑到剧烈行情下, RESTful接口可能存在查询延迟,我们强烈建议您优先从Websocket user data stream推送的消息来获取订单,仓位等信息。
追加保证金通知
事件描述
- 当用户持仓风险过高,会推送此消息。
- 此消息仅作为风险指导信息,不建议用于投资策略。
- 在大波动市场行情下,不排除此消息发出的同时用户仓位已被强平的可能。
事件类型
MARGIN_CALL
Payload
Schema:
marginCall
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
Payload
Schema:
accountUpdate
订单交易更新推送
事件描述
当有新订单创建、订单有新成交或者新的状态变化时会推送此类事件,事件类型统一为 ORDER_TRADE_UPDATE
订单方向
- BUY 买入
- SELL 卖出
订单类型
- LIMIT 限价单
- MARKET 市价单
- STOP 止损限价单
- STOP_MARKET 止损市价单
- TAKE_PROFIT 止盈限价单
- TAKE_PROFIT_MARKET 止盈市价单
- TRAILING_STOP_MARKET 跟踪止损单
- LIQUIDATION 爆仓
本次事件的具体执行类型
- NEW
- CANCELED 已撤
- CALCULATED 订单 ADL 或爆仓
- EXPIRED 订单失效
- TRADE 交易
- AMENDMENT 订单修改
订单状态
- 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"
过期原因
0: 无,默认值1: 自成交保护,订单被取消2: IOC订单无法完全成交,订单被取消3: IOC订单因自成交保护无法完全成交,订单被取消4: 只减仓竞争过程中,低优先级的只减仓订单被取消5: 账户强平过程中,订单被取消6: 不满足GTE条件,订单被取消7: Symbol下架,订单被取消8: 止盈止损单触发后,初始订单被取消9: 市价订单无法完全成交,订单被取消
事件类型
ORDER_TRADE_UPDATE
Payload
Schema:
orderTradeUpdate
杠杆倍数等账户配置更新推送
事件描述
当账户配置发生变化时会推送此类事件,类型统一为ACCOUNT_CONFIG_UPDATE。
当交易对杠杆倍数发生变化时,推送消息体会包含对象ac表示交易对账户配置,其中s代表具体的交易对,l代表杠杆倍数。
当用户联合保证金状态发生变化时,推送消息体会包含对象ai表示用户账户配置,其中j代表用户联合保证金状态。
事件类型
ACCOUNT_CONFIG_UPDATE
Payload
Schema:
accountConfigUpdate
精简交易推送
事件描述
精简交易推送相比原有的ORDER_TRADE_UPDATE流减少了数据延迟,但该交易推送仅推送和交易相关的字段。
事件类型
TRADE_LITE
Payload
Schema:
tradeLite
条件订单(TP/SL)触发后拒绝更新推送
事件描述
CONDITIONAL_ORDER_TRIGGER_REJECT 在止盈止损单触发后被拒绝时推送
事件类型
CONDITIONAL_ORDER_TRIGGER_REJECT
Payload
Schema:
conditionalOrderTriggerReject
策略交易更新推送
事件描述
STRATEGY_UPDATE 在策略交易创建、取消、失效等等时候更新。
策略状态
- NEW
- WORKING
- CANCELLED
- EXPIRED
opCode
- 8001: 策略参数更改
- 8002: 用户取消策略
- 8003: 用户手动新增或取消订单
- 8004: 达到 stop limit
- 8005: 用户仓位爆仓
- 8006: 已达最大可挂单数量
- 8007: 新增网格策略
- 8008: 保证金不足
- 8009: 价格超出范围
- 8010: 市场非交易状态
- 8011: 关仓失败,平仓单无法成交
- 8012: 超过最大可交易名目金额
- 8013: 不符合网格交易身份
- 8014: 不符合 Futures Trading Quantitative Rules,策略终止
- 8015: 无仓位或是仓位已经爆仓
事件类型
STRATEGY_UPDATE
Payload
Schema:
strategyUpdate
网格更新推送 (Deprecated)
事件描述
GRID_UPDATE 在网格子订单有部份或是完全成交时更新。
策略状态
- NEW
- WORKING
- CANCELLED
- EXPIRED
事件类型
GRID_UPDATE
Payload
Schema:
gridUpdate
条件订单交易更新推送
事件描述
当有新订单创建、订单有新成交或者新的状态变化时会推送此类事件,事件类型统一为 ALGO_UPDATE
本次事件的具体执行类型
- NEW:该状态表示条件订单已提交,但尚未触发。
- CANCELED:该状态表示条件订单已被取消。
- TRIGGERING:该状态表示条件订单已满足触发条件,且已被转发至撮合引擎。
- TRIGGERED:该状态表示条件订单已成功触发并成功进入撮合引擎。
- FINISHED:该状态表示触发的条件订单已在撮合引擎中被成交或取消。
- REJECTED:该状态表示条件订单被撮合引擎拒绝,例如保证金检查失败等情况。
- EXPIRED:该状态表示条件订单被系统取消。例如,用户下了一个GTE_GTC时效条件订单,但随后关闭了该标的的所有持仓,系统因此取消了该条件订单。
事件类型
ALGO_UPDATE
Payload
Schema:
algoUpdate
listenKey过期推送
事件描述
当前连接使用的有效listenKey过期时,user data stream 将会推送此事件。
注意:
- 此事件与 websocket 连接中断没有必然联系
- 只有正在连接中的有效
listenKey过期时才会收到此消息 - 收到此消息后 user data stream 将不再更新,直到用户使用新的有效的
listenKey
事件类型
listenKeyExpired
Payload
Schema:
listenKeyExpired