Node.JS Adapter for BitMEX Realtime Data
This is a reference adapter for receiving realtime data from the BitMEX API.
The following is runnable in example.js.
To get started, create a new client:
const BitMEXClient = ;// See 'options' reference belowconst client = testnet: true;
Then subscribe to a symbol and table, and pass a callback.
new BitMEXClient(object options)
testnet: false // set `true` to connect to the testnet site (testnet.bitmex.com)// Set API Key ID and Secret to subscribe to private streams.// See `Available Private Streams` below.apiKeyID: ''apiKeySecret: ''maxTableLen: 10000 // the maximum number of table elements to keep in memory (FIFO queue)
client.addStream(string symbol, [string tableName], function callback)
Subscribe to a data stream. Pass a symbol to subscribe to all public data for an instrument.
tableName to receive data for a specific table.
client.on(string eventName, function callback)
The client also doubles as a basic EventEmitter. The following events are fired:
"initialize" // Socket initialized, client.streams available "error" "open" "close"
Note: Don't forget to attach an
error handler! If one is not attached, errors will be thrown
and crash your client.
client.getData([string symbol], [string tableName])
Use this function to access data directly. Pass either a symbol, or tableName, or both. Data returned by this method is safe to modify as it is cloned from the internal stores.
If speed is a concern, all data is accessible directly inside the client via the
Do not modify this data, or you will corrupt further updates!
Same as above, but returns all tables for a given symbol.
Same as above, but returns all symbols for a given table.
Available Public Streams
The streams below echo the models described in the API Explorer.
"chat", // Trollbox "instrument", // Instrument updates including turnover and bid/ask "liquidation", // Liquidations "orderBookL2_25", // Top 25 levels of level 2 order book "orderBook10", // Last 10 bids and asks (price and size) "quote", // Top level of the book "trade" // Trades ... // See https://www.bitmex.com/app/wsAPI#Subscriptions for more streams
Available Private Streams
The following streams require authentication via an API key.
"execution", // Individual order placements and executions, settlements, commissions "margin", // Your account's margin details "order", // Order creations, cancellations, and updates "position" // Your positions, per instrument ... // See https://www.bitmex.com/app/wsAPI#Subscriptions for more streams
For much more information on what this module is doing, run it with the
DEBUG environment variable. For example:
# Display all debug messagesDEBUG=* node example.js# Display all high-level debug messagesDEBUG=BitMEX:* node example.js