gateio / WebSocket-API

gateio WebSocket-API
56 stars 32 forks source link

account 通道订阅 change代表什么含义? #11

Closed benpaodewoniu closed 3 years ago

benpaodewoniu commented 3 years ago

你好,我想通过 websocket 的 account 通道得到我现在的用户信息,希望包括,所有余额、可用余额、冻结等。但是,websocket 的 account 通道只返回两个有用信息,一个是 balance 一个是 change.

其中,balance 我认为这个数据返回的一直是总的所有余额。在 api 中其解释是 balance after changed,我理解为是比价变化之后的总余额。

而,change 我一直没有搞明白是什么意思?请告知我,这个属性代表什么意思,以及,我如何通过 websocket 获得 所有余额、可用余额、冻结等用户信息!谢谢!

revilwang commented 3 years ago

你问的是合约的 websocket ?

benpaodewoniu commented 3 years ago

@revilwang 是的

revilwang commented 3 years ago

balance 就是更新后的余额,changed 是这次的变化量,也就是推送前的余额+changed = balance

初始余额查询建议用 Rest API 来操作

benpaodewoniu commented 3 years ago

@revilwang 以 EOS_USD 和 EOS_USDT 为例,请问 change 的单位是什么?我在模拟盘跑的时候,这个 change 是一个负的常数,另外,请告知我,change 你们是怎么计算出来的?

除此之外,我还需要 可用余额的数据,但是,这个通道返回的数据,并不能计算出可用余额,谢谢!

revilwang commented 3 years ago

你应该是在概念理解上弄错了。价格、余额的单位都是对应的结算货币。EOS_USD 和 EOS_USDT 分属于两个不同结算货币的市场。前者是 btc 结算,后者是 usdt 结算。所有的价格单位都是对应的结算货币。

所以可用余额本身也是以结算货币为单位,可用余额是根据结算货币的市场价格会发生变化的,并不是一个固定的值,没有办法推送。

change 是根据推送的 type 来决定的,如果 type=fee,那change就是这次手续费的值。 type=fund,就是这次资金费用的值。 type=pnl,就是这次减仓导致的盈亏。