BitMEXのrecent tradesのフィールドの意味

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パターンあり、

  1. ZeroMinusTick
  2. MinusTick
  3. PlusTick
  4. 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/BitcoinMarkets/comments/9ths68/bitmex_api_websocket_trade_stream_meanings_of/

https://www.reddit.com/r/BitMEX/comments/afmqne/how_does_the_perpetual_xbtusd_contract_works_an/