BitMEX WebSocket Fields
bitmexのwebsocketクライアントを使っている際、recent tradesを叩いて返ってきたデータの意味がわからなかったので調査した。
まずBitMEXのrecent tradesからはどんなデータが返ってきているのだろうか
mysql> select * from bitmex_recent_trades order by id desc limit 10;
+----------+----------------------------+--------+------+------+--------+---------------+--------------------------------------+------------+--------------+-----------------+
| id | timestamp | symbol | side | size | price | tickDirection | trdMatchID | grossValue | homeNotional | foreignNotional |
+----------+----------------------------+--------+------+------+--------+---------------+--------------------------------------+------------+--------------+-----------------+
| 11081482 | 2020-01-24 15:30:29.366000 | XBTUSD | Sell | 2100 | 8479.5 | ZeroMinusTick | c2d665a3-bb51-f45f-6ce7-40f732f0609f | 24765300 | 0.247653 | 2100 |
| 11081481 | 2020-01-24 15:30:27.621000 | XBTUSD | Sell | 500 | 8479.5 | MinusTick | 34153f08-a2f7-8749-72b4-061da3d3f070 | 5896500 | 0.058965 | 500
(雑なコピペ)
とりあえず返ってきているカラムとしては
- timestamp
- symbol
- side
- size
- price
- tickDirection
- trdMatchID
- grossValue
- homeNotional
- foreignNotional
である。
timestamp, symbol, side, priceは言わなくてもわかると思うので、それ以外を説明する。
tickDirection
tickDirectionに含まれるデータは4パターンあり、
- ZeroMinusTick
- MinusTick
- PlusTick
- ZeroPlusTick
である。
Minus/Plus
Minus/Plusのプレフィックスは価格が変化したことを示している。
Minusの場合は、売り成り行き注文が執行されたことにより、直前の取引価格に対して今回の取引価格が低下したことを示している。
Plusの場合は、買い成り行き注文が執行されたことにより、直前の取引価格に対して今回の取引価格が上昇したことを示している。
Zero
Zeroのプレフィックスは、直前に成立した取引と同じ価格でこの取引が実施されたことを示している。
ZeroMinusは売り成り行き注文が執行されたが、価格が変化しなかった場合を示している。
ZeroPlusは買い成り行き注文が執行されたが、価格が変化しなかった場合を示している。
trdMatchID
取引を識別し特定するための一意なIDである。
grossValue
Satoshiでのコントラクトサイズである。
grossValue = foreignNotional / price * 100000000
で表せる。
homeNotional
BTCでのコントラクトサイズである。
foreignNotional
USDでのコントラクトサイズである。
この値はSizeに一致する。
参考
https://www.reddit.com/r/BitMEX/comments/afmqne/how_does_the_perpetual_xbtusd_contract_works_an/